我想执行以下操作:如果PATH中存在CCache,请使用"ccache g ++"进行编译,否则使用g ++.我尝试编写一个包含的小型my-cmake脚本
CC="ccache gcc" CXX="ccache g++" cmake $*
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用(运行make仍然不使用ccache;我使用CMAKE_VERBOSE_MAKEFILE检查了这一点).
更新:
根据此链接,我尝试将脚本更改为
cmake -D CMAKE_CXX_COMPILER="ccache" -D CMAKE_CXX_COMPILER_ARG1="g++" -D CMAKE_C_COMPILER="ccache" -D CMAKE_C_COMPILER_ARG1="gcc" $*
Run Code Online (Sandbox Code Playgroud)
但cmake抱怨说使用编译器ccache测试失败(可以预料).
重复构建项目时,如果翻译单元中存在警告但没有错误,则通常不会重新编译主源文件.
这可能使得难以通过错误和警告来尝试在没有警告的情况下构建项目.通常,必须保持迭代构建直到所有错误都得到处理,然后进行全面清理并构建以确保没有警告(以及确保先前完成的构建不是由剩余引起的"侥幸"构建工件).
是否有任何方法使用CMake(或其他一些实用程序,如Bash脚本)来解析警告的构建输出,将它们保存在某个文本文件中,然后在后续构建中重新显示它们?
对于奖励积分,因为我正在为我的编译器输出着色,是否可以使用颜色控制字符保存警告并使用相同的颜色重新显示?
(如果重要的是,目前我只编译C++,而且我通常使用GCC这样做.我选择的构建生成器是Ninja,我有一些我编写的Bash脚本将我的所有调用都包含在内CMake和Ninja.)