乐趣区

关于linux:Rosettahdf5-Ubuntu编译

环境信息

我的项目
操作系统 Ubuntu 18.04.6 LTS
cpu 8 核
内存 16G
g++ 7.5.0
Python 2.7.17
rosetta rosetta 3.13

装置

装置依赖库

sudo apt-get update
sudo apt-get install libboost-dev

配置环境变量

编译文件 ~/.bashrc 增加以下内容

export ROSETTA=/root/rosetta_src_2021.16.61629_bundle
export ROSETTA3_DB=$ROSETTA/main/database
export ROSETTA_BIN=$ROSETTA/main/source/bin
export PATH=$PATH:$ROSETTA_BIN
export LD_LIBRARY_PATH=$ROSETTA/main/source/bin:$LD_LIBRARY_PATH

ROSETTA 批改为源码目录

装置 HDF5

从这里下载 hdf5 源码,基于源码进行装置

cd hdf5-1.12.0
./configure --prefix=/usr/local/hdf5 --enable-fortran
make
sudo make install
sudo make check-install

装置胜利后须要增加环境变量,同样编辑文件,增加以下内容

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/hdf5/serial

执行 source ~/.bashrc 命令使其失效

hdf5 装置胜利后默认 lib 文件寄存在 /usr/lib/x86_64-linux-gnu/hdf5/serial 目录下,头文件 (.h 文件) 寄存在 /usr/include/hdf5/serial

批改配置文件

批改 rosetta 配置文件,配置文件位于osetta_src_2021.16.61629_bundle/main/source/tools/build/site.settings,将原来的配置项

"include_path" : os.environ["INCLUDE"].split(":") if "INCLUDE" in os.environ else []

批改为

"include_path" : os.environ["INCLUDE"].split(":") if "INCLUDE" in os.environ else [] + ["/usr/include/hdf5/serial/"],

/usr/include/hdf5/serial/就是 hdf5 的头文件所在目录

装置

cd $ROSETTA/main/source/
./scons.py -j 20 mode=release bin extras=hdf5

-j 20 示意开启 20 个线程同时编译,这个须要视服务器配置正当设置,如果设置过高,会耗费大量内存,如果内存不够编译会失败。如果一切顺利,显示以下日志示意编译胜利

scons: done building targets.
退出移动版