编译模板:Boost


1.Boost-1.55 Linux-x86_64 / GNU编译器,并行版
 

与1.69版编译方法类似(见下),但是在较新的Linux系统会遇到一些不兼容问题,需做如下修改:

  • 在进行第一步之前,编辑主目录下的bootstrap.sh文件,把
    print sys.prefix
    改为
    print(sys.prefix)
  • 编译结束后,如果没有得到libboost_mpi-mt.*文件,需要修改libs/mpi/src中的communicator.cpp和environment.cpp,将所有的“MPI_Errhandler_set”替换为“MPI_Comm_set_errhandler”并保存。然后重复第三步的编译安装步骤。
2.Boost-1.69 Linux-x86_64 / GNU编译器,并行版
 1) 运行配置命令。
./bootstrap.sh --with-libraries=all --prefix=/home/MyID/Tool/Boost/Install

2) 编辑生成的文件project-config.jam,在开头加入
using mpi ;

using mpi : mpicxx ;
mpicxx是实际所用的mpic++编译器名,可以加上绝对路径。注意行尾分号。

然后加载mpi环境变量。

3) 编译并安装(静态和动态两种库文件,带-mt后缀):
./b2 --layout=tagged link=static,shared threading=multi install

其它常用编译参数有:

  • 多核编译,例如四核编译为:-j4
  • 指定编译器:--toolset=gcc-4.9.1或--toolset=intel-linux
  • 编译出错(中途停止编译,或者编译完成后出现“...failed updating 9 targets...”一类的信息),可以用
    ./b2 -q
    命令查询编译状态。如果修改了某些环境变量(如设置python头文件路径),需要从第一步重新开始。

如果要安装到无权限的系统目录,sudo ./b2 ...命令可能会出错。可以在第一步定义到个人目录,安装完成后再复制到系统目录下,并修改用户组和所有者。
sudo chgrp -R root {系统安装目录}
sudo chown -R root {系统安装目录}

4) 编译正常结束后,加入以下环境变量:
export BOOST_ROOT=/home/MyID/Tool/Boost/Install
export BOOST_INCLUDE=$BOOST_ROOT/include
export BOOST_LIB=$BOOST_ROOT/lib
export LD_LIBRARY_PATH=$BOOST_LIB:$LD_LIBRARY_PATH
export CPATH=$BOOST_INCLUDE:$CPATH