CentOS7安装boost_1.80遇到莫名其妙的问题。
第一次按如下命令安装,这是以前安装1.67的命令,安装后生成动态链接库.so和静态链接.a文件。写程序编译生成其他动态链接库.so,链接用到boost的静态库.a也没问题。
cd boost_1_80_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc
./b2 cflags='-fPIC' cxxflags='-fPIC'
sudo ./b2 install
后来又在系统上安装了一些别的库,如mkl、armadillo、protobuf、sqlite等,再次按上面命令重新编译boost_1.80,静态库.a文件就不对了,比如libboost_filesystem.a相比之前编译版本变小了,而且新生成的boost静态库 .a参与链接生成别的动态库.so时报错,提示要recompile with -fPIC,说明此次编译静态库时-fPIC没起作用。也不知哪个环节影响了编译环境,没深究,后来找到解决办法,用下面的编译命令就没问题了。
cd boost_1_80_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc
sudo ./b2 include=static,shared link=static link=shared cxxflags=-fPIC cflags=-fPIC install