为什么b2在默认为4.8的情况下使用gcc4.6构建

Why does b2 build with gcc4.6 when 4.8 is default?

本文关键字:情况下 gcc4 构建 b2 默认 为什么      更新时间:2023-10-16

在构建自定义Boost.Python项目时,我遇到了构建错误,这些错误源于缺乏对gcc-4.6的c++11支持(要包装的代码在VS2012下编译良好)。因此,我升级到4.8,并使用$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50将gcc的执行重定向到新版本:

$ gcc --version
gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1

到目前为止,一切都很好。但由于错误信息没有改变,在进一步检查时,我注意到了一些东西:

link.jam: No such file or directory
...patience...
...patience...
...found 1710 targets...
...updating 2 targets...
gcc.compile.c++ bin/gcc-4.6/debug/extending.o  //WHAT?

看起来b2仍然使用gcc-4.6。是的,它仍然安装着,但我不是用gcc-4.8代替它吗?我很困惑。。。

此外,我可以手动指定收费集版本吗?我尝试了toolset=gcc4.8,但最终出现了一个错误,即gcc4.8.jam不存在。。。

原来我忘了

$sudo更新替代方案--安装/usr/bin/g++g++/usr/bin/g++-4.8 50

这有点愚蠢,但这将有望帮助未来的某个人。向@nos致敬!