编译安装almabte-1.3.1心得

    xiaoxiao2022-07-07  181

    按照almabte官网安装过程走,不过除了有管理员权限、能联网的情况,对于在服务器上的普通用户,这上面的安装指引几乎没用。最近折腾了两天,总算安装好了,写一点安装体验吧。


    准备并行库,hdf5-1.8.20,boost-1.68.0

    1.并行库因为服务器上安装了2018版的Intel全套,我也懒得再去安装什么openmpi, mpich2之类的,直接就用Intel mpi. 关于Intel或者openmpi的安装这里就不在赘述。

    2.对于almabte-1.3.1,一定要用hdf5-1.8.20版的,至少不能用hdf5-1.10.2版的,后面的小版本应该影响不大。不然到编译almabte的时候,会出现如

    error: ‘class h5::h5location’ has no member named ‘createattribute’

    error: ‘class h5::commonfg’ has no member named ‘createdataset’

    等问题,很头疼,还以为哪里参数没设置好呢。估计是换了版本,改了一些函数、结构什么的。

    从源代码编译hdf5,默认是不编译C++相关的,所以要加上--enable-cxx参数,后面要用到相关的库文件

    #解压后进入hdf5-1.8.20目录,也可以mkdir mybuild && cd mybuild && ../configure --prefix=/home/lzyw/software/hdf5-1.8.20 --enable-cxx,不污染源文件目录,还可以多次修改更正

    ./configure --prefix=/home/lzyw/software/hdf5-1.8.20 --enable-cxx

    make

    make install

    编译好后,看一看安装目录下有没有libhdf5_cpp.so之类的

    记得加入环境变量,以便cmake搜索(当然不一定用得到,我没测试,反正加入就是了)

    export PATH=$PATH:/home/lzyw/software/hdf5-1.8.20/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lzyw/software/hdf5-1.8.20/lib export CPATH=$CPATH:/home/lzyw/software/hdf5-1.8.20/include

    3.Boost编译

    #解压后进入boost_1_68_0目录

    ./bootstrap.sh --prefix=/home/lzyw/software/boost-1.68.0..

    之后会生成一个project-config.jam文件,用vi之类的打开,在末尾加上

    using mpi ;

    注意在mpi和逗号之间有一个空格

    如果编译完后在安装目录下没有看到libboost_mpi.so、libboost_mpi.a之类的,那应该是编译时没有找到mpicc,那就得进一步声明

    using mpi : /opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/intel64/bin/mpicc ;

    总之一定要生成boost的mpi库,因为编译almabte要用到。这里参考的是https://www.boost.org/doc/libs/1_70_0/doc/html/mpi/getting_started.html

    然后编译安装boost

    ./b2

    ./b2 install

    4.进入almabte文件夹,新建mybuild文件夹并进入

    cmake ..

    如果找不到boost,可以用

    BOOST_ROOT=/home/lzyw/software/boost-1.68.0 cmake ..

    声明boost位置,hdf5应该也可以用HDF5_ROOT,不过cmake找到了,我就没特别声明了

    然后就是make,注意almabte没有make install,直接就在当前文件夹中的子文件夹中生成了

    最新回复(0)