首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在编译Boost时使用"arm-linux-gnueabi-g++“?

为什么在编译Boost时使用"arm-linux-gnueabi-g++“?
EN

Stack Overflow用户
提问于 2016-03-10 04:31:52
回答 1查看 733关注 0票数 0

我正在尝试在Ubuntu Linux 12.04上手动编译Boost。然而,它似乎正在尝试交叉编译,尽管我没有告诉它这样做。

以下是我使用的命令:

代码语言:javascript
运行
复制
git clone https://github.com/boostorg/boost
git checkout boost-1.60.0
git submodule init
git submodule update

cd tools/build/
./bootstrap.sh
sudo ./b2 install --prefix=/usr/local/

cd ../../
sudo b2 -j12 --build-dir=/tmp/build_boost --build-type=complete toolset=gcc address-model=64 architecture=x86 threading=multi runtime-link=shared stage --layout=tagged

最后一个命令失败,给出了各种编译错误,所有错误都与下面显示的第一个命令类似:

代码语言:javascript
运行
复制
gcc.compile.c++ /tmp/build_boost/boost/bin.v2/libs/system/build/gcc-arm/release/address-model-64/architecture-x86/threading-multi/error_code.
arm-linux-gnueabi-g++: error: unrecognized command line option ‘-m64’

    "arm-linux-gnueabi-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -m64  -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_DYN_LINK=1 -DNDEBUG  -I"." -c -o "/tmp/build_boost/boost/bin.v2/libs/system/build/gcc-arm/release/address-model-64/architecture-x86/threading-multi/error_code.o" "libs/system/src/error_code.cpp"

...failed gcc.compile.c++ /tmp/build_boost/boost/bin.v2/libs/system/build/gcc-arm/release/address-model-64/architecture-x86/threading-multi/error_code.o...

如何确保它使用本机g++ (用于x86-64)?

EN

回答 1

Stack Overflow用户

发布于 2016-03-10 05:06:06

我发现了问题:我的主目录中有一个user-config.jam (可能在交叉编译测试期间临时存储)。我之所以发现这一点,是因为从/usr/bin/中删除所有arm-linux-gnueabi-*文件会导致以下错误:

代码语言:javascript
运行
复制
/home/janito/boost/tools/build/src/tools/gcc.jam:83: in gcc.init from module gcc                             
error: toolset gcc initialization:
error: provided command 'arm-linux-gnueabi-g++' not found
error: initialized from /home/janito/user-config.jam:45
/home/janito/boost/tools/build/src/build/toolset.jam:43: in toolset.using from module toolset
/home/janito/boost/tools/build/src/build/project.jam:1052: in using from module project-rules                          
/home/janito/user-config.jam:45: in modules.load from module user-config
/home/janito/boost/tools/build/src/build-system.jam:249: in load-config from module build-system
/home/janito/boost/tools/build/src/build-system.jam:389: in load-configuration-files from module build-system
/home/janito/boost/tools/build/src/build-system.jam:524: in load from module build-system
/home/janito/boost/tools/build/src/kernel/modules.jam:295: in import from module modules
/home/janito/boost/tools/build/src/kernel/bootstrap.jam:139: in boost-build from module
/home/janito/boost/boost-build.jam:17: in module scope from module

至少解决方案是简单地删除~/user-config.jam文件。

将其作为答案发布,以便将来有人遇到同样的情况时可以使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35901958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档