我正在尝试(现在几天)使用 boost/python 构建从 C++ 代码生成的 DLL,以供 python 使用。我是一名来自德国的学生,直到现在主要与 Java 有关(我之前用 C++ 编写了一些基本的 OpenGL 和 gimp 过滤器的东西)。所以请提前原谅我英语不好或 C++ 初学者的错误。我的意思是,与 C++ 相比,使用 Java 编程确实要舒服得多。但足够的小规模冲突。
错误:
LINK : fatal error LNK1104: File "boost_python-vc110-mt-gd-1_53.lib" could not be openend
我的预设:
- 使用 MS Visual Studio 2012 (11.0)
- 使用 boost_1_53_0
-使用python2.7(听说3.3可能会出现一些问题)
我做了什么:
安装python并将其添加到PATH。然后在 VS 中创建一个新的空项目和一个类文件“Test.cpp”,其中包含以下内容,如 boost 教程页面所述:
char const* greet()
{
return "hello world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(Test)
{
using namespace boost::python
def("greet", greet);
}
然后是我的新部分,在 VS Project Properties 中:
配置属性 > 常规 > 配置类型 > 动态库 (.dll)
C/C++ > 常规 > 添加包含目录 > C:[..]\boost_1_53_0
链接器 > 常规 > 其他库目录 > C:[..]boost_1_53_0\stage\lib
从错误中,我假设我对 Linker 或 Include 做错了什么。我还将 Linker > General > Additional Library Directories 更改为 boost_1_53_0\libs 因为我不确定,但发生了同样的错误。是的,我正确地包含了 python。我也不确定是否必须将 python 旁边的其他内容放入 Linker > Input 以进行提升。
然后我用 bjam 构建 boost,除了 msvc-11.0 之外没有其他选项,以确保拥有我需要的一切(尽管我读到 boost/python 不需要额外的构建)并且仍然得到相同的错误。有人能帮我吗?我很想一步一步地描述要做什么。我真的对此感到绝望。
顺便说一句:在Linker error LNK1104 with 'libboost_filesystem-vc100-mt-s-1_49.lib'前几天我和这个人有同样的错误然后停止工作,当我重新开始时,我得到了我的全新错误(我不能告诉你这是怎么发生的)。