交叉编译folly库

假定交叉编译链工具所在目录为:/home/softwares/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/,其c++编译器为:/home/softwares/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

1. 下载folly源码,并交叉编译其依赖库:

直接用git clone就行了,默认是最新的master分支,也可以切换到Tags分支(Tags分支是稳定的??):

git clone https://github.com/facebook/folly.git
cd folly/

依赖库可以到自带的文件中查看:

cd ./build/fbcode_builder/manifests/
ls

这个目录下有所有依赖的库的文件,每个文件里面包含了folly所依赖的版本以及下载链接,以及需要编译哪些库(比如boost库有很多的库,folly只需要其中的一大部分即可),依赖库可以从这里找到并下载。
另外,folly依赖的库,并不一定都需要,需要看看哪些是必须依赖,哪些是非必须依赖。可以在./CMake/folly-deps.cmake中看到,那些用find_package()且是REQUIRED参数的,表示是必须的库,其他的表示可以不用

1.1 交叉编译boost库:

在目录./build/fbcode_builder/manifests/下找到boost,打开下载boost包,或者到官网下载最新boost也行。
在这里插入图片描述

去boost官网下载:https://www.boost.org/users/download/
在这里插入图片描述
下载后解压,查看当前boost可以编译的库(boost是一个库集合,包含了很多库,可以查看和选择某些库来编译):

cd boost_1_78_0/
./bootstrap.sh --show-libraries

在这里插入图片描述

执行boost预编译脚本,进行库选择以及配置:

export LD_LIBRARY_PATH=/home/softwares/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}
./bootstrap.sh --without-libraries=python --with-toolset=gcc

由于我的交叉编译工具中没有python相关的头文件和库,因此无法编译boost的python库,所以就去掉这个库。这样,其他boost库都会被编译。如果只想编译其中某些库,则可以用--with-libraries参数,库名称用逗号隔开。详情执行--help来查看。

设置交叉编译工具:
上述命令执行完如果不出错,则会生成一个配置文件project-config.jam,打开文件此文件,配置:

在这里插入图片描述
注意,:之间有空格,特别是最后一个分号;前面必须有一个空格。

编译:
执行编译命令:

./b2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值