使用Boost.Python创建C ++扩展模块

时间:2015-05-12 21:12:31

标签: python c++ visual-studio visual-c++ boost

我目前正在尝试学习如何构建扩展模块,以便在python脚本中使用C ++函数。我使用Pythong 2.7.9 32位。 因此,我安装了Microsoft Visual Studio 2008 Express,使用其C ++编译器构建boost.python库。然后我将... \ boost_1_58_0目录添加到Visual Studio的包含路径,将... \ boost_1_58_0 \ stage \ lib添加到库路径。

之后,或多或少地遵循这个Tutorial,我创建了我的hellomodule.cpp:

#include <iostream>


using namespace std;

void say_hello(char* name)
{
    cout << "Hello " << name << endl;
}


#include <boost\python\module.hpp>
#include  <boost\python\def.hpp>


using namespace boost::python;

BOOST_PYTHON_MODULE(hello)
{
    def("say_hello", say_hello);
}

另外,我创建了一个名为setup.py的python脚本:

#!/usr/bin/env python

from setuptools import setup, Extension

setup(
    name="Hello",
    version = "1.0",
    ext_modules = [Extension("Hello", ["hellomodule.cpp"])
    ])

然后我将这两个文件放在同一目录中,打开命令行,切换到目录并运行

python setup.py build

给出了以下输出:

running build
running build_ext
building 'Hello' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox
/MD /W3 /GS- /DNDEBUG -ID:\Python\include -ID:\Python\PC /Tphellomodule.cpp /Fob
uild\temp.win32-2.7\Release\hellomodule.obj
hellomodule.cpp
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : war
ning C4530: C++ exception handler used, but unwind semantics are not enabled. Sp
ecify /EHsc
D:\boost\boost_1_58_0\boost\python\module.hpp(8) : fatal error C1083: Cannot ope
n include file: 'boost/python/detail/prefix.hpp': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\c
l.exe' failed with exit status 2

我完全迷失在这里,提到的目录中存在无法找到的头文件(prefix.hpp)。谁能告诉我这里缺少什么?

0 个答案:

没有答案