上一篇介绍的是CentOS 7下编译安装Open Babel2.4.1和python绑定:http://www.linuxdiyf.com/linux/30846.html
一、Open Babel简介
Open Babel是一款开源自由软件,使用Open Babel可以将一种化学结构类型的文件格式转换成另一种文件格式,非常方便的进行各种类型的化学结构文件进行相互转换。
Open Babel由CC++编写,并提供C ++, Perl, Python等的API接口方便开发。
二、Open Babel 2.4.1的编译安装并绑定Python
第一步:下载openbabel 2.4.1安装包
下载地址:https://github.com/openbabel/openbabel/releases
第二步:安装boost库
su root #获取root权限
apt install libboost-dev # 安装boost库
第三步:安装gcc、g++、make、cmkae
apt install gcc
apt install g++
apt install make
apt install cmake
第四步:安装依赖的开发库
apt install libxml2-dev
apt install zlib1g-dev
apt install libcairo2-dev
apt install libeigen2-dev
apt install libopenbabel-dev
第五步:支持Python(Python2.7)绑定,安装python开发库
apt install python-dev
第六步:编译安装
tar zxvf openbabel-2.4.1.tar.gz
mkdir build
cd build
cmake ../openbabel-2.4.1 -DPYTHON_BINDINGS=ON #编译安装Python绑定
make
make test
make install
第七步:环境变量添加
gedit ~/.bashrc
#open babel
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH #Python路径添加
source ~/.bashrc
最后一步:检查Open Babel 2.4.1和Python绑定是否安装成功
检查Open Babel 2.4.1
Python绑定是否安装成功
###################CC++ example的编译###########################
/*example.cpp*/
#include <iostream>
#include <openbabel/obconversion.h>
using namespace std;
int main(int argc,char **argv)
{
if(argc<3)
{
cout << "Usage: ProgrameName InputFileName OutputFileName\n";
return 1;
}
ifstream ifs(argv[1]);
if(!ifs)
{
cout << "Cannot open input file\n";
return 1;
}
ofstream ofs(argv[2]);
if(!ofs)
{
cout << "Cannot open output file\n";
return 1;
}
OpenBabel::OBConversion conv(&ifs, &ofs);
if(!conv.SetInAndOutFormats("CML","MOL"))
{
cout << "Formats not available\n";
return 1;
}
int n = conv.Convert();
cout << n << " molecules converted\n";
return 0;
}
编译命令:
g++ example.cpp -I /usr/local/include/openbabel-2.0 -lopenbabel
效果图: