C++ 构建boost:python代码时出错

C++ 构建boost:python代码时出错,c++,python,visual-studio-2010,boost,boost-python,C++,Python,Visual Studio 2010,Boost,Boost Python,我有以下改进:python代码(gona.cpp) “GONA”是文件C++文件名。我使用下面的命令在命令行中构建它 python setup.py build 在我这样做之后,我得到以下错误 >python setup.py build running build running build_ext building 'hello' extension C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Pyth

我有以下改进:python代码(gona.cpp)

“GONA”是文件C++文件名。我使用下面的命令在命令行中构建它

python setup.py build
在我这样做之后,我得到以下错误

>python setup.py build
running build
running build_ext
building 'hello' extension
C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c De
cision_Tree.cpp -o build\temp.win32-2.7\Release\gona.o
gona.cpp:9:35: fatal error: boost/python/module.hpp: No such file or di
rectory
compilation terminated.
error: command 'gcc' failed with exit status 1
我在系统中安装的boost似乎只能在visualstudio上工作(因为它已经成功构建)。我在VisualStudio中运行过其他boost程序,没有任何问题。 如何将其构建为python模块,以便可以在python代码中导入?。(使用命令行或Visual studio)

这里有几件事:

  • 您也可以直接使用VS2010构建Python模块,只需将输出路径设置为foo.pyd而不是foo.dll
  • setup.py似乎使用了MinGW,也许您可以说服它使用正在运行的VS2010安装程序
  • 可以使用“-I”通知GCC包含路径,请参阅GCC文档。我不知道如何告诉setup.py它应该在哪里查找include路径,但是您应该能够轻松找到该文档
  • 看起来setup.py正在尝试编译为C代码(“gcc.exe”而不是“g++.exe”),这可能会导致进一步的问题
  • 您的代码有一个main()函数,这在DLL中不是必需的(二进制Python模块实际上是DLL)

不要使用命名空间std执行
在标题包含之前-这可能会导致标题内的命名冲突。如果您想将其用于自己的目的,请将其放在最后一个include之后。
python setup.py build
>python setup.py build
running build
running build_ext
building 'hello' extension
C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c De
cision_Tree.cpp -o build\temp.win32-2.7\Release\gona.o
gona.cpp:9:35: fatal error: boost/python/module.hpp: No such file or di
rectory
compilation terminated.
error: command 'gcc' failed with exit status 1