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

本文详细介绍了如何在ARM环境下下载、编译BoostC++库,包括下载源码、选择所需库、设置cross-compilation工具,以及验证编译结果的过程。
摘要由CSDN通过智能技术生成

前言

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

下载Boost源码

Boost源码的下载路径可以使用:https://sourceforge.net/projects/boost/files/boost/

编译

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

./bootstrap.sh --help

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

./bootstrap.sh --show-libraries

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

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

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

using gcc : arm : aarch64-linux-gnu-g++ ;

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

./b2

会出现以下类似的信息,确认是arm的交叉编译环境:

因为只是编译单个库,编译很快就完成了,会有以下提示,头文件在boost_1_66_0/boost目录下,库文件在boost_1_66_0/stage/lib目录下:

然后我们可以用readelf命令查看下:

readelf -h stage/lib/libboost_program_options.so

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

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
NDK交叉编译Boost是将Boost编译成适用于Android平台的文件,以便在Android应用中使用Boost的功能。下面是一般的NDK交叉编译Boost的步骤: 1. 下载NDK:首先,你需要下载并安装Android NDK,可以从官方网站(https://developer.android.com/ndk/downloads)上获取最新版本的NDK。 2. 下载Boost:接下来,你需要下载Boost的源代码。你可以从Boost官方网站(https://www.boost.org/users/download/)上下载最新版本的Boost。 3. 配置Boost:解压下载的Boost源代码,并进入解压后的目录。在终端中执行以下命令来配置Boost: ``` ./bootstrap.sh --with-libraries=<library_names> --with-toolset=<toolset_name> --prefix=<install_path> ``` 其中,`<library_names>`是你需要编译Boost的名称,可以根据你的需求进行选择;`<toolset_name>`是你要使用的编译工具链,例如`clang`或`gcc`;`<install_path>`是你希望安装Boost的路径。 4. 编辑user-config.jam文件:在Boost源代码目录下,创建一个名为`user-config.jam`的文件,并添加以下内容: ``` using clang : <ndk_version> : <path_to_ndk>/toolchains/llvm/prebuilt/<host_os>/bin/clang++ ; ``` 其中,`<ndk_version>`是你下载的NDK的版本号,`<path_to_ndk>`是你安装NDK的路径,`<host_os>`是你的操作系统类型(例如`darwin-x86_64`或`linux-x86_64`)。 5. 开始编译Boost:在终端中执行以下命令来开始编译Boost: ``` ./b2 toolset=clang-<ndk_version> target-os=android link=static threading=multi variant=release install ``` 这将使用指定的编译工具链和选项来编译Boost,并将编译结果安装到之前配置的安装路径中。 6. 完成编译:等待编译过程完成,然后你将在之前配置的安装路径中找到编译好的Boost文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李71~李先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值