我厌倦了手动执行一个又一个命令来编译一个使用 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
现在,尽管我非常想要一台能够预测 future 的计算机,但我对此并不是很满意。我做错了什么?
最佳答案
您的 Makefile
是在远程文件系统上创建的,因此时间戳是使用服务器时钟记录的,服务器时钟看起来很快(或者您机器的时钟很慢)。然而,make
正在您的本地计算机上运行,因此当它看到您的 Makefile
时,它似乎是在未来创建的。
正确的做法是修复关闭的时钟。 (理想情况下,两台机器都应该使用类似 NTP 的东西来与标准时钟同步。)
一个快速的 hack 是在列表中添加一个 sleep
命令
cgal_create_cmake_script &&
cmake . &&
echo "set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -std=c++11\")" >> CMakeList.txt &&
sleep 3 &&
make
以便您的本地时钟可以“ catch ”并使远程文件看起来是在过去而不是 future 创建的。
关于c++ - CGAL - 制作时时钟转动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32907239/