【发布时间】:2011-07-17 19:35:23
【问题描述】:
我可以访问需要构建 boost 1.46 的服务器。如何强制 bootstrap.sh 使用 /usr/bin/gcc-4.4。默认情况下它使用 /usr/bin/gcc 我不知道如何改变它
【问题讨论】:
我可以访问需要构建 boost 1.46 的服务器。如何强制 bootstrap.sh 使用 /usr/bin/gcc-4.4。默认情况下它使用 /usr/bin/gcc 我不知道如何改变它
【问题讨论】:
我使用类似这样的东西为 ARM 工具链交叉构建了 Boost:
echo "using gcc : arm-unknown-linux-gnueabi : /usr/local/arm/bin/g++ ; " >> tools/build/v2/user-config.jam
你应该可以做这样的事情:
boost 1.59 及以上版本:
echo "using gcc : 4.4 : /usr/bin/g++-4.4 ; " >> tools/build/src/user-config.jam
boost 1.58 及以下版本:
echo "using gcc : 4.4 : /usr/bin/g++-4.4 ; " >> tools/build/v2/user-config.jam
然后构建
bjam --toolset=gcc-4.4
【讨论】:
./bjam 上添加一个 ./。
bjam 而不是b2?
最新版本的 Boost 1.71 的工作方式如下:
>export CC=<path to custom gcc>/gcc
>export CXX=<path to custom gcc>/g++
>./bootstrap.sh
>./b2 --toolset=gcc stage threading=multi link=shared
您可以使用以下命令检查用于构建的 gcc 版本
>ldd b2
linux-vdso.so.1 => (0x00007ffcaa5f4000)
libstdc++.so.6 => <path to custom gcc>/lib64/libstdc++.so.6 (0x00002b85ab701000)
libm.so.6 => /lib64/libm.so.6 (0x00002b85abaaa000)
libgcc_s.so.1 => <path to custom gcc>/lib64/libgcc_s.so.1 (0x00002b85abdac000)
libc.so.6 => /lib64/libc.so.6 (0x00002b85abfc3000)
/lib64/ld-linux-x86-64.so.2 (0x00002b85ab4dd000)
或在 bin.v2/project-cache.jam 文件中
【讨论】:
Boost 1.59 更新
现在你需要这样做:
echo "using gcc : : /usr/bin/g++44 ; " >> tools/build/src/user-config.jam
【讨论】:
对于想知道 OSX 10.11.6 上的 Boost 1.61 答案的人:Sean 的 answer 对我不起作用,因为 this boost report 中提到的 ld: unknown option: -h 错误。为了让它工作,我在他的命令中用darwin替换了gcc
echo "using darwin : 6.2 : /usr/local/bin/g++-6 ; " >> tools/build/src/user-config.jam
为了编译和安装它,我使用了
./b2 --toolset=darwin-6.2 --prefix=$HOME/.local/ install
【讨论】: