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

时间:2014-04-24 22:31:23

标签: 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)

错误:

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.

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

5 个答案:

答案 0 :(得分:40)

扩展Ben Voigt的答案:

find /your/dir -type f -exec touch {} +

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

答案 1 :(得分:3)

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

检查系统时间是否过去。示例:

  

$日期

如果是,您有几种方法可以解决此问题。较容易的是安装ntp服务器:

  

apt安装ntp

  

yum install ntp

或者...

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

答案 2 :(得分:1)

检查您的计算机时间。我有同样的问题,根本原因是我的计算机时间过去 - 当我更新它时,它完美地工作。

答案 3 :(得分:0)

只需设置您的系统日期:

示例

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css">

<div id="app">
  <table class="table is-bordered">
    <tr v-for="(row, idx) in data.cells" :key="idx">
      <th v-for="cell in row" :is="cell.type" :key="`r${idx}_c${cell.columnIndex}`" v-html="cell.value">
      </th>
    </tr>
  </table>
</div>

答案 4 :(得分:-1)

尝试使用以下内容:

rm Makefile
sudo qmake yourproj. //or any command to create the makefile again
make clean
make