如果头文件被更改然后恢复,如何停止/欺骗 cmake 不重建
How to stop/trick cmake into not rebuilding if a header file was changed then reverted?
如果我不小心更改了头文件,保存它,然后将其更改回来并重新保存,如何阻止 cmake 检测更改并重建其所有依赖项。 通常我什至不知道它被修改了,直到我重新运行make
并开始重建过程。
我尝试了一些天真的手动时间戳更改,但没有运气。
需要明确的是,我正在寻找一个黑客或可以解释cmake使用规则的人。 环境是使用命令行 gcc/clang 的 linux/os x。
cmake
是一个makefile生成器(它可以生成其他东西)。这就是为什么你用make
.
你看到的行为确实是标准make
行为。这是一个通用的构建工具;每当目标过时时,它都会通过应用该目标的"配方"来重建任何"目标"。这些目标和食谱都是cmake
写的。
你可以询问make
它将重建哪些目标(make --dry-run
),并更新标头的时间戳以早于所有目标(touch -r oldest_target header.h
)。或者,为了避免确定哪个目标最旧,请交替使用第一个目标make --dry-run
和touch -r
,直到make --dry-run
不再返回任何目标。
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 遇到新行时,有没有办法停止istream_iterator
- 线程之间的布尔停止信号
- Python中的for循环与C++有何不同
- 如何正确停止g_main_loop_run
- 当用户键入分隔符时,停止getline()输入
- MPI突然停止了对多个核心的操作
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- 如何使用隔离>终止执行来停止所有线程
- 我可以使用什么来停止循环而不是"返回 0"?
- gdb错误:Backtrace已停止:上一帧与此帧相同(堆栈已损坏?)
- 使用 GLUT 使用键停止动画?
- 如何停止 CLR 主机?
- 在C++中释放内存期间,迭代器与指针有何不同
- 如何在调用析构函数时优雅地停止/销毁带有阻塞调用C++线程?
- 为什么此代码的矢量迭代器没有停止?
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 如何使用 ctypes 停止和重新启动从 Python 运行的C++代码
- 如果头文件被更改然后恢复,如何停止/欺骗 cmake 不重建