我的问题是每当我尝试使用 Makefile 进行编译时,我都会得到以下内容:
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.
我的制作文件是:
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
谢谢你的帮助。
一个可能的解决方案是touch
源代码树中的每个文件,以便更新时间戳:
转到子树的根目录并执行以下操作:
find . -exec touch {} ;
然后make clean
并重试编译。
正如 stijn 的评论中所指出的,如果编译位于 NFS 挂载上的源并且 NFS 服务器的时钟在执行编译的客户端时钟之前运行,则最常给出消息"检测到时钟偏差"。
我在
Eclipse中也看到过几次,当时我在大学的一台计算机上做一些工作。我的数据驱动器是网络驱动器,网络驱动器和本地计算机之间的时钟差已关闭。
将工作区切换到本地计算机(C 驱动器)上的某个位置解决了问题