CGAL - 制作时时钟转动?

CGAL - clock slew when making?

我厌倦了手动执行一个又一个命令来编译一个使用 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: Warning: File 'Makefile' has modification time 2.4 s in the future

make[1]: Warning: File 'CMakeFiles/Makefile2' has modification time 2.4 s in the future

make[2]: Warning: File 'CMakeFiles/my_dir.dir/progress.make' has modification time 2.4 s in the future

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

您的 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

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