交叉编译boost

开发环境:ubuntu10
文章目录

  1. 查找boost中要安装的库
  2. 去除不需要的库及制定安装路径
  3. 添加自己编译器路径
  4. 编译boost
  5. 安装boost
  6. 添加需要的so文件到目标系统

1. 查找boost中要安装的库

在命令行进入boost的解压目录,执行

./bootstrap.sh --show-libraries

查看所有库如下


image.png

2. 去除不需要的库及制定安装路径

由于我们仅需使用serialization库,因此使用 --without-libraries=, , , 逗号隔开去掉不想编译的库,--prefix=/../ 指定编译后的安装路径

./bootstrap.sh --without-libraries=atomic, chrono, container,context,coroutine,date_time,exception,filesystem,graph,graph_parallel,iostreams,locale,log,math,mpi,program_options,python,random,regex,signals,system,test,thread,timer,wave --prefix=/home/jishufeng/boost_1_57_0_qt4_7

备注:经验证,在去掉多个库后,编译时仍需要很长时间

3. 添加自己编译器路径

生成有 b2 和 bjam ,以及一个 project-config.jam 的文件,修改该文件的一行(指定自己的编译器):

using gcc : : /home/sinc/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc ;

注意:这中间是有空格的,如下图标示的地方:


image.png

特别是最后一个分号前是有空格的,要不然会出错。

4. 编译boost

执行 ./bjam 即可,这是编译,创建的 lib 文件默认在 stage 文件夹

5. 安装boost

编译完后,执行 ./bjam install 即进行安装,我的上面 --prefix=/.../ 指定的目录就是安装目录

6. 添加需要的so文件到目标系统

一般将需要的so文件拷贝到 /usr/lib目录下即可。

关于so文件的一些知识,可参考
Linux动态链接库.so文件的创建与使用

本文参考 # boost库交叉编译(Linux生成ARM的库)

你可能感兴趣的:(交叉编译boost)