Ubuntu 20.04 交叉编译Boost库

最近新研发的板子架构不一样,是aarch64架构的,有些库要重新编译,Boost库比较常用,网上的编译流程并不是很详细,特此记录一下。

先说一下x86_64平台上的,推荐直接用apt下载dev包,方便快捷。

sudo apt install libboost-all-dev

想要编译也很简单, 下载解压源码,进入源码目录

./bootstrap.sh --with-libraries=all --with-toolset=gcc

最后就是aarch64架构的交叉编译了,这里会介绍得详细一点。

1. 下载交叉编译工具链

  • 自动下载
sudo apt-get install gcc-aarch64-linux-gnu
  •  源码使用

下载链接: Linaro Releases

2. 将交叉编译工具设置到环境变量(或者后面可以直接使用绝对路径)

export PATH="/home/liyongjiang/ctools/gcc-linaro-7.5.0-2019.12_x86_64_aarch64-linux-gnu/bin:$PATH"

3. 准备想要的其他库依赖

Boost很全面,但是交叉编译的时候并不会将所有的库编译上,有些库需要外部添加,比如zlib、icu

  • zlib库编译

        版本: 1.2.13

../configure --prefix=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/zlib --enable-shared
  • icu编译

         版本:74.1

# 进入源码目录
mkdir icubuild && cd icubuild

# 运行source目录下的runConfigureICU
../icu4c/source/runConfigureICU Linux/gcc

make

# 在进入到source目录
cd ../icu4c/source

# --with-cross-build 填写刚才make的目录, 需要绝对路径
./configure CXXFLAGS=-std=c++11 --host=aarch64-linux-gnu --build=x86_64-linux-gnu --target=aarch64-linux-gnu --prefix=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/ICU --with-cross-build=/home/liyongjiang/lib_compile/icu-release-74-2/icubuild --disable-samples --disable-tests CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ AR=aarch64-linux-gnu-ar

4. 编译

  • 在源码目录下先执行 ./booststarp.sh
  • 编辑 project-config.jam

  • 所有的模块功能也不是全部开启的,在执行编译命令后可以看到那些库使能了,哪些库没有使能,可以按需开启,比如这里用到的 regex、data_time等。
./b2 install --prefix=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/boost --with-system --with-filesystem --with-iostreams --with-regex --with-thread --with-date_time -s ZLIB_INCLUDE=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/zlib/include -s ZLIB_LIBPATH=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/zlib/lib -s ICU_INCLUDE=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/ICU/include -s ICU_LIBPATH=/home/liyongjiang/lib_compile/aarch64_gcc_7.5.0/ICU/lib architecture=arm link=shared threading=multi -j4
  • 检查编译出来的库文件架构是否正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值