【发布时间】:2023-04-06 03:52:01
【问题描述】:
我基本上和这里的人一样:
Building/including Boost.Python in VS2013
但是,我使用了一个空的 cpp 文件,其中只有 main 函数并包含 <boost/python.hpp>
#include <boost/python.hpp>
int main() {
return 0;
}
现在我得到了奇怪的链接器错误(在 Visual Studio 中):
1>LINK : fatal error LNK1104: cannot open file 'boost_python-vc140-mt-gd-1_60.lib'
这很奇怪,因为我认为我有lib 文件,但是它被称为:
libboost_python3-vc140-mt-gd-1_60.lib
【问题讨论】:
-
您的程序正在尝试动态链接到 Boost.Python。尝试在您的 cpp 文件中添加
#define BOOST_PYTHON_STATIC_LIB,在任何#include之前。boost_python-vc140-mt-gd-1_60.lib是伴随boost_python-vc140-mt-gd-1_60.dll的导入库,而libboost_python3-vc140-mt-gd-1_60.lib是静态库。您可能想要为 Boost.Python 构建 DLL。静态链接有几个缺陷,比如每个扩展都有自己的 Boost.Python 类型注册表副本。您可以通过谷歌搜索找到更多相关信息。 -
^ 你,先生,刚刚救了我的命。
标签: python c++ boost linker visual-studio-2015