我现在正在使用cmake在多个平台上编译和构建C ++项目。每次调用cmake脚本时,都会删除building文件夹中的所有内容。例如,我使用以下shell命令来说明如何调用cmake:
rm -rf build_folder
mkdir build_folder
cd build_folder
cmake ..
这样,我们可以确保由项目生成的库或二进制文件在源代码方面得到了更新。但是,这可能会花费一些时间,因为每次camke都会调用编译器从头开始构建项目。原因在于我们担心如果不删除建筑文件夹中的所有内容,cmake可能会保留先前建筑的某些中间结果。因此,我的问题是:我们的担忧是否合理?如果仅cmake ..
在不删除文件夹中的任何内容的情况下调用上一个建筑文件夹,我们可能会遇到哪种危险?
使用构建系统的主要目的是不必每次都重新构建所有内容。正确的构建系统会正确跟踪哪些文件已更改,以及因此需要进行正确,最少重建的命令。
如果这对您不起作用,则说明您已弄乱了构建系统。
如果您担心要针对不同的平台进行构建,并且构建系统无法识别差异,那只是构建系统混乱的一种方式。具体来说,问题在于您正在同一目录中依次构建不同的变体。至少我是从您的描述中得出的。太傻了,不要这样做。为每个平台使用不同的构建文件夹,以正确的配置在每个文件夹中调用cmake一次,然后保持不变。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句