Windows10源码编译安装RDKit

17 篇文章 0 订阅
12 篇文章 0 订阅

引言

RDKit是一个非常重要的库,可是它的安装却非常不友好。我尝试了使用conda安装,但是按照博客上写的方法,都无法安装。因此,我只好硬着头皮按照RDKit官网上提供的方法安装。RDKit是由C++语言编写的,因此在WIndows下的安装需要从源代码进行编译,困难重重。

下面是官方的安装教程

rdkit/Install.md at master · rdkit/rdkit · GitHub

第一步:准备

Prerequisites

Recommended extras

以上内容都是常规操作,我就不细说了。

安装Microsoft Visual C++

官方建议安装Microsoft Visual Studio 2015或者2017版本 ,社区版即可

安装cmake

直接下载即可

安装boost 

在安装boost的过程,遇到了第一个大的障碍。我一开始是按照RDKit官方给出的方法安装boost,但是一直会导致后续cmake步骤出现错误

Could NOT find Boost (missing: python3) (found version "1.76.0") - CMake Windows

因此,经过我的摸索和验证后,正确的安装boost方法如下:

先打开网址:

Boost C++ Libraries - Browse /boost-binaries/1.66.0 at SourceForge.net

从中选择boost_1_66_0-msvc-14.0-64.exe下载,然后双击安装。安装的路径设置为C:\boost

安装完成之后,需要将C:\boost下的libboost_1_66_0文件夹重命名为lib

Setup and Preparation

第一,把自己的python解释器的路径确认好,并将其加入到windows的系统变量中去。例如,我的python解释器是在conda中的,那么python解释器的路径就设置为C:\Users\10544\anaconda3\envs\SMR

即,Path对应的环境变量中增加C:\Users\10544\anaconda3\envs\SMR

第二,将官网下载的RDKit压缩包解压到C盘,路径为C:\RDKit

第三,在系统的环境变量中再增加一些对应的内容

  • RDBASE = C:\RDKit
  • Path中增加 `C:\Python36
  • Path中增加 ‘C:\RDKit\lib'
  • Path中增加 ' C:\boost\lib'
  • PYTHONPATH = 'C:\RDKit'

Building from the command line

C:\RDKit创建build文件夹

打开cmd,输入

cd C:\RDKit\build

由于我们不需要安装INCHI、AVALON和PGSQL,因此我们只需如下的命令

cmake -DRDK_BUILD_PYTHON_WRAPPERS=ON -DBOOST_ROOT=C:/boost -G"Visual Studio 14 2015 Win64" ..

运行之后可能会报错

需要安装Freetype,从下面的网址下载压缩包,解压

https://github.com/freetype/freetype

将F:\freetype-2.5.3\builds\windows\vc2010中的sln用Visual Studio打开,选择RELEASE,x64

然后运行编译

会在F:\freetype-2.5.3\objs\win32\vc2010中生成lib文件。

之后,将F:\freetype-2.12.1\objs的完整路径添加到环境变量FREETYPE_INCLUDE_DIRS中;将F:\freetype-2.12.1\include的完整路径添加到环境变量FREETYPE_LIBRARY中。

如果这样还是会报错的话,执行下面的命令

cmake -DRDK_BUILD_PYTHON_WRAPPERS=ON -DBOOST_ROOT=C:/boost -DFREETYPE_INCLUDE_DIRS='F:\freetype-2.12.1\include' -DFREETYPE_LIBRARY='F:\freetype-2.12.1\objs' -G"Visual Studio 14 2015 Win64" ..

Build the code. Here's an example command line:

cmd中输入

C:/Windows/Microsoft.NET/Framework64/v4.0.30319/MSBuild.exe /m:4 /p:Configuration=Release INSTALL.vcxproj

可能会报错

"C:\Microsoft.Cpp.Default.props" was not found

解决方法如下:

1.需要在系统环境变量中添加路径

VCTargetsPath = C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\

2.还需要更改注册表

将 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0中,新建一个名称

VCTargetsPath = C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\

同样地,在  计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0中,新建一个名称

VCTargetsPath = C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\

解决了上述问题后,再次运行

C:/Windows/Microsoft.NET/Framework64/v4.0.30319/MSBuild.exe /m:4 /p:Configuration=Release INSTALL.vcxproj

可是,我还是遇到了报错

c:\rdkit\code\rdgeneral\Dict.h(276): error C2039: 'string_view': is not a member of 'std' [C:\RDKit\build\Code\RDGeneral\RDGeneral.vcxproj]

 经过搜索,发现这个问题似乎与C++17有关。需要使用C++17及以上的特性才能避免报错。

c++ - How to enable /std:c++17 in VS2017 with CMake - Stack Overflow

c++ - How to command line compile a Visual Studio project using msbuild and setting C++17? - Stack Overflow

‘string_view’ is not a member of ‘std’ error. c++ version error? - Newbie - ROOT Forum

可是我尝试了好长实际,还是报错

我也尝试了安装VS 2022,VS 2017,但还是报错。

截止现在,这个问题还是没有解决,如果解决了,我会更新的。


更新

2022年8月2日13:23:33

 由于尝试了很久仍然无法解决这个问题,最终我使用conda安装成功了。

具体可以参阅

http://t.csdn.cn/sdT2P

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值