boost的Linux环境下--ARM交叉编译和裁剪

目录

一、下载源码

二、交叉编译

三、裁剪


本例为:boost库的ARM交叉编译和其中正则表达式库regex的裁剪,boost中其它库的裁剪也可参照此方法。

注意:本人所述都是基于:CentOS Linux release 7.4 的操作,其它发行版本不保证一样!

一、下载源码

官网:https://www.boost.org/users/download/

二、交叉编译

在boost解压后的目录下执行:

  1. ./bootstrap.sh --with-libraries=regex --prefix=/home/workspace/tools_3rdparty/boost_1_68_0_install_3399
  2. 参考 boost库交叉编译(Linux生成ARM的库)修改 project-config.jam,替换自己的交叉编译器;
  3. 执行 ./bjam
  4. 执行 ./bjam install 

上面 --with-libraries= 表示只需生成regex的库文件, --prefix= 表示指定安装路径。

虽然这样生成的库文件只有regex的,但是头文件确是整个boost的,但是除了regex的,其它根本不需要,所以需要裁剪。

整理这个笔记的时候,突然发现有个编译选项:-with-toolset=gcc,尝试一下把这里的gcc替换为自己的交叉编译器,但是报错,具体原因没时间深究,在此做个记录吧。

三、裁剪

只需要regex相关的头文件,参考 boost单独提取regex及自动链接介绍

在boost解压后的目录下执行:

  1. ./bjam tools/bcp
  2. cp dist/bin/bcp ./
  3. mkdir /home/workspace/tools_3rdparty/boost_1_68_0_install_3399/bcp_slimmed 
  4. ./bcp regex.hpp /home/workspace/tools_3rdparty/boost_1_68_0_install_3399/bcp_slimmed 

    则 bcp_slimmed\boost 就是裁剪过的头文件(可以直接取用), bcp_slimmed\libs\regex\src 就是源文件,这样裁剪出来的可以直接导入自己的工程使用,是否有什么方便方法,可以把裁剪的源码直接编译成 libboost_regex.so 或 libboost_regex.a,目前还不知道,但是结合我这个先编译再裁剪的步骤,也可以达到目的,即:我只需要正则表达式库,但是我不需要那么多其它的头文件!
    

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值