c++ - CGAL - 制作时时钟转动?

标签 c++ c++11 cmake makefile cgal

我厌倦了手动执行一个又一个命令来编译一个使用 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/

相关文章:

windows - 在 Windows 上链接到 libjpeg 时如何解析 "undefined reference"?

c++ - 在 Windows 中编写引用 HDF5 的 CMakeLists 的正确方法

c++ - 如何使用具有递归模板函数的线程

c++ - `constexpr`和 `const`之间的区别

c++ - Constexpr 指针值

android - 向 Android 应用程序添加额外文件

C++ lambda 表达式 - 编译器如何解释它们?

c++ - 如何使用 cmake 在子目录中构建库?

c++ - 跟踪数据执行保护 (DEP)

c++ - 用于测试 std::vector 内容的 Oneliner