Makefile警告:警告:文件`main.cpp'将来有修改时间2.1e + 04 s

use*_*152 14 linux makefile

我有工作Makefile,但有一个警告,我无法解决.

#Use the g++ compiler
CC = g++

# Compiler flags:
#   -Wall (most warnings enabled)
#   -g (for debugging with gdb)
CFLAGS = -Wall

# Executable name:
TARGET = deque_adt

all: main.o deque_adt.o deque_adt

$(TARGET): main.o deque_adt.o
    $(CC) $(CFLAGS) main.o deque_adt.o -o $(TARGET)

main.o: main.cpp deque_adt.h 
    $(CC) $(CFLAGS) main.cpp -c

deque_adt.o: deque_adt.cpp deque_adt.h
    $(CC)  $(CFLAGS) deque_adt.cpp -c

clean:
    rm *.o *~ $(TARGET)
Run Code Online (Sandbox Code Playgroud)

错误:

make: Warning: File `main.cpp' has modification time 2.1e+04 s in the future
g++ -Wall main.cpp -c
g++  -Wall deque_adt.cpp -c
g++ -Wall main.o deque_adt.o -o deque_adt
make: warning:  Clock skew detected.  Your build may be incomplete.
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决问题吗?我试图在元素之间切换,但它仍然给出相同的警告.

tha*_*guy 43

扩展Ben Voigt的答案:

find /your/dir -type f -exec touch {} +
Run Code Online (Sandbox Code Playgroud)

将更新目录中所有文件的时间戳.然后你可以make clean && make再次.

  • @EtanReisner一点都不!实际上,这是最便宜的选择。通过触摸和制作三个源文件,总共可能需要2个CPU秒和10个人工秒。 (2认同)

RRR*_*RRR 6

检查您的计算机时间。我遇到了同样的问题,根本原因是我的计算机时间已经过去了 - 当我更新它时,它运行良好。


小智 5

该消息通常表明某些文件的修改时间晚于当前系统时间。

检查您的系统时间是否是过去的时间。例子:

$ 日期

如果是这样,您有多种方法可以解决此问题。更简单的方法是安装 ntp 服务器:

易于安装 ntp

或者

百胜安装ntp

或者 ...

关于您的操作系统(Ubuntu、Centos 等)