2011-04-05 107 views
4

我在查找指南时遇到了一些麻烦,该指南允许我将Boost.Python编译集成到VS 8.它似乎很大程度上依赖于此bjam实用程序来构建源代码,但是没有提及如何将其整合到VS 8界面中。将Boost.Python与Visual Studio 8集成

我可以看到,bjam程序调用VS 8做了大量的编译工作。

+0

你想编译Boost.Python本身还是只编译使用Boost.Python的Python扩展模块?除了工作编译器和链接器之外,后者应该不需要任何特殊的东西 - 例如,我已经使用Xcode和SCons完成了该工作。 – Philipp 2011-04-05 14:59:55

+0

后者,我想编译使用Boost.Python的C++扩展。但是,当我试图自己编译并试图从python调用.pyd时,我不断收到错误: 'Traceback(最近调用最后一个):文件“F:\ Visual Studio 2005 \ Projects \ test_vs_proj \ debug \ hello.py“,第6行,在 import test_vs_proj ImportError:动态模块没有定义初始化函数(inittest_vs_proj)' – 2011-04-05 15:04:22

+0

重新构造你的问题并发布你想要暴露给Python的代码示例。事实上,你的问题可能与编译Visual Studio 8和bjam无关。 – Rod 2011-04-05 16:10:01

回答

0

我发现这个问题,谢谢你的建议菲利普。事实证明我只需要提供正确的头文件和库目录到VS 8并编译为DLL(不是控制台程序)。

包含目录:

  • \升压蟒蛇\ boost_1_46_1
  • \ Python27 \ include`

库目录:

  • \ Python27 \库
  • \ boost-python \ boost_1_46_1 \ stage \ lib`

任何人都可以确认这些是用于包含和链接的正确目录吗?

3

bjam用于编译boost本身(尽管您可以将它用作代码的配置工具)。运行该实用程序应编译该库,不需要进一步的工作,afaik。 就我所知(假设列出的目录路径是正确的,例如:C:\ Python27 \ include),您在第二篇文章中列出的include和库路径是正确的。

当我在使用boost.python时,发现我无法编译任何安装了64位版本Python的C++/Python库。我首先必须删除64位版本并安装32位版本。

此外,如果我在#include陈述之前包含#define BOOST_PYTHON_STATIC_LIB,汇编才会成功。我仍然没有想出为什么。

我希望我的回答(我在这个网站上的第一个人,所以不要对我太苛刻;))有任何用处。