我对交叉编译器基础架构采取了不同的方法。我有一个目录:$HOME/local,其中包含所有预期的子目录:bin/, lib/, include/, etc.$HOME/local/bin 在我的$PATH 中是(第一个),在$LD_LIBRARY_PATH 中是$HOME/local/lib(或在达尔文上是$DYLD_LIBRARY_PATH)。
然后我在--prefix=$HOME/local 中构建并安装 gmp、mpfr、mpc,其中:
> ./configure --prefix=$HOME/local --enable-cxx [--disable-fft]
> ./configure --prefix=$HOME/local --with-gmp=$HOME/local
> ./configure --prefix=$HOME/local --with-mpfr=$HOME/local --with-gmp=$HOME/local
我可以为这些包使用快速、平台相关的标志,这些标志通常不适用于带有交叉 --target 三元组的 gcc:
> env CFLAGS="-pipe -Wall -O2 -march=core2" CXXFLAGS="..." ./configure ...
优势在于,无论我在何处构建交叉编译器基础架构,gmp、mpfr、mpc 库、包含等都可以访问 - 并且相同的库可用于多个交叉编译器。即,我有 4.6.x AVR、独立 x86_64-pc-elf、ARM EABI。每个使用gcc 配置选项:
> --with-mpc=$HOME/local --with-mpfr=$HOME/local --with-gmp=$HOME/local
显然,当我 fsck 构建工具链构建时(我经常这样做),至少我不必重复构建的这一部分。