我有一个工作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.
有人可以帮我解决问题吗?我试图在元素之间切换,但它仍然会发出相同的警告。
答案 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