My problem is whenever I try to compile using Makefile I get the following :
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.
My Makefile is :
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
Thank you for your help.
A possible solution is to touch
every file in the source tree in order to update time-stamps:
Go to the root of the sub-tree an do:
find . -exec touch {} \;
Then make clean
and retry compilation.
As denoted in a comment by stijn the message "Clock skew detected" is most commonly given if compiling sources located on an NFS mount and the NFS server's clock runs ahead the client's clock doing the compilation.
I saw this in Eclipse a couple of times as well when doing some work on one of the University computers here. My data drive was a network drive and the clock difference between the network drive and the local machine was off.
Switching my workspace to a location on the local machine (C drive) fixed the problem
type the following command
find -exec touch \{\} \;
That message is usually an indication that some of your files have modification times later than the current system time. Since make decides which files to compile when performing an incremental build by checking if a source files has been modified more recently than its object file, this situation can cause unnecessary files to be built, or worse, necessary files to not be built.
来源:https://stackoverflow.com/questions/13745645/makefile-clock-skew-detected