时钟在制作时转动

CGAL - clock slew when making?

本文关键字:时钟      更新时间:2023-10-16

我厌倦了手动执行一个又一个命令,只是为了编译一个使用CGAL的c++ 11程序。

所以我想我应该创建一个小的。sh文件来为我处理它:

#!/bin/bash
cgal_create_cmake_script &&
cmake . &&
echo "set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")" >> CMakeList.txt &&
make
我不太了解bash脚本,但是这个似乎工作得很好。但是,我经常收到 的警告

make:警告:文件'Makefile'在未来有2.4 s的修改时间

make[1]:警告:文件'CMakeFiles/Makefile2'在未来有2.4 s的修改时间

make[2]: Warning: File 'CMakeFiles/my_dir.dir/progress. info。Make '的修改时间为2.4 s

现在,尽管我很想要一台能够预测未来的计算机,但我对此并不满意。我做错了什么?

您的Makefile是在远程文件系统上创建的,因此使用服务器的时钟记录时间戳,这个时钟看起来很快(或者您的机器的时钟很慢)。然而,make正在您的本地机器上运行,因此当它看到您的Makefile时,它似乎是在将来创建的。

正确的做法是修理坏了的时钟。(理想情况下,两台机器都应该使用NTP之类的东西来与标准时钟同步。)

一个快速的方法是在列表中添加一个sleep命令

cgal_create_cmake_script &&
cmake . &&
echo "set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")" >> CMakeList.txt &&
sleep 3 &&
make

使您的本地时钟可以"赶上",并使远程文件看起来是在过去而不是未来创建的。