源码编译Boost库的正确姿态

源码编译Boost库的正确姿态

  • 写在前面
    • step 1.
    • step 2.
    • step 3.
    • step4.

写在前面

项目需要编译pcl库到arm平台,交叉编译Boost,Eigen3, Flann, 之后再编译pcl库的时候总是报错,让添加-fPIC选项重新编译。没细看以为是要在编译pcl库时添加-fPIC,前试后试了各种方法添加-fPIC选项,还是报错。搜错误代码得到的答案还是要添加-fPIC[Doge]。

step 1.

编译boost时添加-fPIC选项,此选项的意思是生成与地址无关的库文件,在编译其他依赖boost库的库文件时非常有用。
在boost_1_xx_x/tools/build目录下搜索gcc.jam,找到rule setup-fpic(targets * : sources * : properties *)这行,将其规则内的if $(link) = shared 改为if $(link) = shared || $(link) = static
保存退出。

step 2.

在boost_1_xx_x/目录下执行bootstrap

step 3.

如果要进行交叉编译则修改project-config.jam文件,将using gcc;修改为using gcc : arm : arm-linux-gnueabihf-gcc-5 ;注意空格

step4.

在pcl的编译中依赖与boost的mpi库,因此在project-config.jam文件中添加一行using mpi ;

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