web-dev-qa-db-fra.com

Makefile: décalage d'horloge détecté

Mon problème est chaque fois que j'essaye de compiler en utilisant Makefile j'obtiens ce qui suit:

make: Warning: File `Board.c' has modification time 1.3e+03 s in the future
gcc -Wall -c -Wvla -lm Board.c -o Board.o
gcc -Wall -c -Wvla -lm PlayBoard.c -o PlayBoard.o
gcc -lm ErrorHandle.o Board.o PlayBoard.o -g -o PlayBoard
make: warning:  Clock skew detected.  Your build may be incomplete.

Mon Makefile est:

CC = gcc
FLAGS = -Wall -c -Wvla

PlayBoard: ErrorHandle.o Board.o PlayBoard.o
    $(CC) -lm ErrorHandle.o Board.o PlayBoard.o -g -o $@

PlayBoard.o: PlayBoard.c Board.o
    $(CC) $(FLAGS) -lm PlayBoard.c -o $@

Board.o : ErrorHandle.o Board.c Board.h
    $(CC) $(FLAGS) -lm Board.c -o $@

.PHONY : clean

clean:
    rm -f Board.o PlayBoard.o PlayBoard

all : PlayBoard

Merci de votre aide.

12
Nadin Haddad

Une solution possible consiste à touch chaque fichier de l'arborescence source afin de mettre à jour les horodatages:

Allez à la racine du sous-arbre et faites:

find . -exec touch {} \; 

Ensuite make clean et réessayez la compilation.

28
sblob

Comme indiqué dans un commentaire par stijn le message "horloge asymétrique détecté" est le plus souvent donné si la compilation de sources situées sur un montage NFS et que l'horloge du serveur NFS avance avant l'horloge du client faire la compilation.

26
alk

J'ai également vu cela dans Eclipse à quelques reprises lorsque je travaillais sur l'un des ordinateurs de l'Université ici. Mon lecteur de données était un lecteur réseau et la différence d'horloge entre le lecteur réseau et la machine locale était éteinte.

La commutation de mon espace de travail vers un emplacement sur la machine locale (lecteur C) a résolu le problème

3
MattEdge

tapez la commande suivante

find -exec touch \{\} \;
2
Muneeb Zulfiqar

Ce message indique généralement que certains de vos fichiers ont des heures de modification postérieures à l'heure actuelle du système. Étant donné que make décide des fichiers à compiler lors de l'exécution d'une génération incrémentielle en vérifiant si un fichier source a été modifié plus récemment que son fichier objet, cette situation peut entraîner la création de fichiers inutiles ou pire, les fichiers nécessaires à ne pas être créés.

1
Muneeb Zulfiqar