[②C++ Boost]: Boost库编译,arm交叉编译方法

前言

Boost是十分实用的C++库,如果想在arm环境下使用,就需要自己下载源码编译,本篇博客就记录下Boost库的编译方法。

下载Boost源码

Boost源码的下载路径可以使用:https://sourceforge.net/projects/boost/files/boost/
[②C++ Boost]: Boost库编译,arm交叉编译方法_第1张图片

编译

例如博主这里下载的版本是boost_1_66_0.7z,下载完成解压缩后进入boost_1_66_0文件夹,可以用以下命令查看编译选项:

./bootstrap.sh --help
[②C++ Boost]: Boost库编译,arm交叉编译方法_第2张图片

可以用以下命令查看Boost可以编译的库:

./bootstrap.sh --show-libraries
[②C++ Boost]: Boost库编译,arm交叉编译方法_第3张图片

例如我们只想编译program_options,可以使用命令:

./bootstrap.sh --with-libraries=program_options

命令完成后会生成project-config.jam文件,修改此文件中的编译工具为arm的交叉编译工具,例如:

using gcc : arm : aarch64-linux-gnu-g++ ;
[②C++ Boost]: Boost库编译,arm交叉编译方法_第4张图片

其中注意;前面还有个空格,否则默认的编译工具不会被修改。
然后我们可以运行:

./b2

会出现以下类似的信息,确认是arm的交叉编译环境:
[②C++ Boost]: Boost库编译,arm交叉编译方法_第5张图片

因为只是编译单个库,编译很快就完成了,会有以下提示,头文件在boost_1_66_0/boost目录下,库文件在boost_1_66_0/stage/lib目录下:
[②C++ Boost]: Boost库编译,arm交叉编译方法_第6张图片
然后我们可以用readelf命令查看下:

readelf -h stage/lib/libboost_program_options.so
[②C++ Boost]: Boost库编译,arm交叉编译方法_第7张图片

编译出来的Boost库文件就可以被arm的项目使用啦。

你可能感兴趣的:(c++,arm开发,开发语言)