VASP编译时添加Plugins支持无法成功的问题

最近注意到VASP有Python 插件系统想要尝试以下,但是在按照文档编译的时候遇到了编译不通过的问题。经过stackoverflow上面的帖子评论解释,这个报错与link时的flag顺序有关,python的link命令应该出现在最后。可以通过调整makefile.include和修改src/makefile解决。具体方法如下:

按照官方文档,在makefile.include中添加如下行,但是将LLIBS的修改变为设置一个新的环境变量PY_PLUGIN_LIBS

CPP_OPTIONS += -DPLUGINS
PY_PLUGIN_LIBS = $(shell python3-config --ldflags --embed) -lstdc++
CXX_FLAGS   += $(shell python3 -m pybind11 --includes) -std=c++11

修改src/makefile文件中plugin相关行,在LLIB结尾添加PY_PLUGIN_LIBS,以保证顺序

ifeq ($(PLUGINS),DPLUGINS)
    LIB+=plugins
    LLIB+=-Lplugins -lplugins $(PY_PLUGIN_LIBS)
    INCS+=-Iplugins
endif

修改后重新make就可以通过了

此条目发表在积少成多分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注