我必须编译用C++编写的应用程序的多个版本,我认为使用ccache来加速这个过程.
ccache howtos有一些示例建议创建名为gcc,g ++等的符号链接,并确保它们出现在原始gcc二进制文件之前的PATH中,因此使用ccache.
到目前为止一切都那么好,但我只想在编译这个特定的应用程序时使用ccache,而不是总是如此.
当然,我可以编写一个shell脚本,每次我想编译应用程序时都会尝试创建这些符号链接,并在编译应用程序时删除它们.但这看起来像文件系统滥用给我.
是否有更好的方法有选择地使用ccache,而不是总是?
为了编译单个源代码文件,我可以手动调用ccache而不是gcc并完成,但我必须处理一个复杂的应用程序,该应用程序使用自动构建系统来存储多个源代码文件.
mim*_*lea 20
绕过ccache只是:
export CCACHE_DISABLE=1
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:
man ccache
Run Code Online (Sandbox Code Playgroud)
...
Run Code Online (Sandbox Code Playgroud)If you set the environment variable CCACHE_DISABLE then ccache will just call the real compiler, bypassing the cache completely.
...
小智 3
什么操作系统?Linux?大多数 ccache 打包版本已经将这些符号链接放入一个目录中,例如在我的 Fedora 机器上,它们位于 /usr/lib64/ccache 中。
所以你可以这样做
PATH=/usr/lib64/ccache:${PATH} make
Run Code Online (Sandbox Code Playgroud)
当你想使用 ccache 构建时。
大多数软件包还会在 /etc/profile.d/ 中安装一个文件,通过将其添加到上面的 PATH 中,该文件会自动启用 ccache。
如果您的系统出现这种情况,只需在您的环境中设置CCACHE_DISABLE=1
(请参阅man ccache
参考资料 获取更多信息)以禁用 ccache - ccache 仍将运行,但只会调用真正的编译器。