如果编译器绝对路径在makefile中被硬编码,我应该如何使用ccache?

Posted

技术标签:

【中文标题】如果编译器绝对路径在makefile中被硬编码,我应该如何使用ccache?【英文标题】:How should I use ccache if the compiler absolute path is hard-coded in the makefile? 【发布时间】:2021-01-04 17:40:07 【问题描述】:

修改构建我们代码的复杂的 makefile 嵌套对我来说不是一个选项,并且在不同的地方它们构建到非常特定的编译器的绝对路径,例如/home/arm2gcc/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi-gcc

这使得将 ccache 用作前缀或将其放在路径中的第一个位置变得困难。

所以我想知道将我个人机器上的编译器安装移动到例如/home/arm2gcc-real 并将虚假脚本放入 /home/arm2gcc 中,重定向到真正的编译器。

谁能建议如何做到这一点?还是有更好的办法?

【问题讨论】:

提交工单以清理构建系统。 我看过了,看起来挺大的!事实上,拥有一个可以工作的 ccache 将是在说服人们相信它有助于正确构建的道路上迈出的一步。 【参考方案1】:

免责声明:我对 Ccache 和 CMake 的经验有限。

您可以尝试将其添加到根 CMakeLists.txt 文件中吗:

find_program(CCACHE ccache)
if(CCACHE)
    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE $CCACHE)
endif()

如果这不起作用,我想我们可能需要更多关于如何在 CMakeLists.txt 文件中准确设置编译器的信息。

【讨论】:

以上是关于如果编译器绝对路径在makefile中被硬编码,我应该如何使用ccache?的主要内容,如果未能解决你的问题,请参考以下文章

一点一点学写Makefile-获取文件所在路径

C ++中的远程过程调用(RPC):当端点被硬编码时,多个客户端可以监听一个服务器吗?

声纳“凭据不应被硬编码”错误

CMake 和绝对标题路径

CMake 在生成 Makefile 时生成的路径名太长

Makefile 链接静态库