使用 autotools 交叉编译时使用 ccache
Using ccache when cross-compiling with autotools
我知道交叉编译基于 autoconf 的项目的标准方法:
$ ./configure --host=i686-w64-mingw32
但是,如果我想使用ccache怎么办?
我知道我可以覆盖 CC 和 CXX 变量(例如 CC="ccache i686-w64-mingw32-gcc" ./configure --host=i686-w64-mingw32)。然而,这似乎是多余的并且容易出错。
有没有标准的方法,我想念一些 CC_PREFIX 变量?
没有,如果你想使用 ccache,你必须更改你的 CC
/CXX
参数并传递 --host
.
顺便说一句,更喜欢
./configure --host=i686-w64-mingw32 \
CC="ccache i686-w64-mingw32-gcc" CXX="ccache i686-w64-mingw32-g++"
而不是预先修复环境变量。这样,如果您使用维护者模式,它们将被正确记录为 config.log
/config.cache
中的覆盖。
我找到的(也是我现在正在使用的)最好的方法是使用符号链接和 PATH 魔法:
$ which -a gcc
/usr/lib/ccache/gcc
/usr/bin/gcc
这样调用./configure时不需要特殊选项,谁也看不到ccache存在于这个构建中
我知道交叉编译基于 autoconf 的项目的标准方法:
$ ./configure --host=i686-w64-mingw32
但是,如果我想使用ccache怎么办?
我知道我可以覆盖 CC 和 CXX 变量(例如 CC="ccache i686-w64-mingw32-gcc" ./configure --host=i686-w64-mingw32)。然而,这似乎是多余的并且容易出错。
有没有标准的方法,我想念一些 CC_PREFIX 变量?
没有,如果你想使用 ccache,你必须更改你的 CC
/CXX
参数并传递 --host
.
顺便说一句,更喜欢
./configure --host=i686-w64-mingw32 \
CC="ccache i686-w64-mingw32-gcc" CXX="ccache i686-w64-mingw32-g++"
而不是预先修复环境变量。这样,如果您使用维护者模式,它们将被正确记录为 config.log
/config.cache
中的覆盖。
我找到的(也是我现在正在使用的)最好的方法是使用符号链接和 PATH 魔法:
$ which -a gcc
/usr/lib/ccache/gcc
/usr/bin/gcc
这样调用./configure时不需要特殊选项,谁也看不到ccache存在于这个构建中