【工作日志节选】AutoDock Vina1.2.3的编译安装

使用计算机平台为Intel处理器,Ubuntu20.04系统。

安装Vina需要安装其包依赖C++运行库boost,我早前下载好了boost1.78源码包。

安装流程为:

1.解压boost1.78源码包,图形界面提取或使用tar -zxvf 命令解压都可以。

2. 运行解压后文件目录中的shell脚本bootstrap.sh,注意这个脚本可以使用--help参数查看详细使用方法,包括设置编译器类型等。

$ sh bootstrap.sh

3. 运行bootstrap生成的可执行文件b2,这一可执行文件也可以用--help参数查看使用方法。

$ ./b2

4. 编译成功后会提示Boost C++库成功构建,此时即可使用b2进行安装。可使用sudo命令安装到/usr/local/boost1.78文件目录下:

$ sudo ./b2 --prefix=/usr/local/boost1.78 install

5. 将安装目录下的两个文件目录以修改.bashrc文件的方式加入环境变量:

$ echo "export CPLUS_INCLUDE_PATH=/usr/local/boost1.78/include" >> ~/.bashrc

$ echo "export LIBRARY_PATH=/usr/local/boost1.78/lib" >> ~/.bashrc

6.根据前些年在神威操作系统上安装vina的相关文献《分子对接软件AutoDockVina在太湖之光操作系统上的移植》,boost可能应该需要进行类似于make check之类的检查,但限于各种原因,因此仅编译了如下c++程序进行简单测试:

#include <boost/date_time/gregorian/gregorian.hpp>

#include <iostream>

using namespace std;

int main()

{

    boost::gregorian::date d(boost::gregorian::day_clock::local_day());

    cout << d.year()<<"." << d.month()<<"." <<d.day() <<endl;

    getchar();

    return 0;

}

随后使用g++和icpx分别编译此程序并运行,都产生了今天日期,取得成功。

7.包依赖解决,Vina安装正式开始,解压Vina1.2.3压缩包,tar解压或图形界面提取都可以

8.进入Vina解压目录下的/build/linux/release目录,并修改Makefile中的参数,可以指定boost包位置及编译器名称,粗体是我手动修改的部分。

BASE=/usr/local/boost1.78

BOOST_VERSION=

BOOST_INCLUDE = $(BASE)/include

C_PLATFORM=-static -pthread

GPP=icpx

C_OPTIONS= -O3 -DNDEBUG -std=c++11

BOOST_LIB_VERSION=include ../../makefile_common

9.使用make -j 命令编译,尽管编译过程中出现了一些警告提示,但仍然正常生成了vina和vina_split程序。经初步测试,可以显示帮助列表和版本号等。将这俩程序复制粘贴到/usr/local/bin文件目录下,完成安装。

后记:

本机平台为Intel处理器,因此为了最佳运行效率优先考虑Intel编译器(icc或icx),但目前intel编译器对许多源码的适应状况不良,因此C++运行库boost我是用Linux标配的gcc编译器编译的,编译器设置为Intel时则无法编译完成。而AutoDock Vina则使用icx编译器编译成功。

当然icx/icpx编译器(Intel OneAPI的DPC++编译器)还太新,是否会出现问题尚不清楚,需要在实际工作中进一步进行检验。

站务

全部专栏