gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:19 25 4
gpt4 key购买 nike

我正在尝试在 Ubuntu Linux 12.04 上手动编译 Boost。但是,它似乎在尝试交叉编译,即使我没有告诉它。

这些是我使用的命令:

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

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

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...

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

最佳答案

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

/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 文件。

将其作为答案发布,以便将来有人遇到相同情况时它会很有用。

关于c++ - 为什么编译Boost时使用 "arm-linux-gnueabi-g++"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com