c-如果编译器的绝对路径在makefile中是硬编码的,我应该如何使用ccache



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

这使得很难将ccache用作前缀或将其放在路径的第一位。

因此,我想知道是否将我个人机器上的编译器安装转移到例如/home/arm2gcc-real,并在/home/arm2gcc中放入重定向到真正编译器的伪脚本。

有人能建议怎么做吗?或者有更好的方法吗?

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

你能试着在根CMakeLists.txt文件中添加这个吗:

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

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

我建议:

mv .../bin/arm-none-eabi-gcc .../bin/arm-none-eabi-gcc.real

然后,创建一个脚本,用以下内容替换.../bin/arm-none-eabi-gcc

#!/bin/sh
exec ccache ${0}.real "$@"

最新更新