【问题标题】:Integrating Boost.Python with Visual Studio 8将 Boost.Python 与 Visual Studio 8 集成
【发布时间】:2011-04-05 14:46:44
【问题描述】:

我很难找到允许我将 Boost.Python 编译集成到 VS 8 的指南。似乎它在很大程度上依赖于这个 bjam 实用程序来构建源代码,但没有任何提及了解如何将其集成到 VS 8 界面中。

我可以看到 bjam 程序调用 VS 8 来完成大部分编译。

【问题讨论】:

  • 你想编译 Boost.Python 本身还是只编译使用 Boost.Python 的 Python 扩展模块?后者应该不需要什么特别的东西,除了一个工作的编译器和链接器——例如,我已经用 Xcode 和 SCons 做到了。
  • 后者,我想编译使用Boost.Python的C++扩展。但是当我尝试自己编译并尝试从 python 调用 .pyd 时,我不断收到错误消息:Traceback (most recent call last): File "F:\Visual Studio 2005\Projects\test_vs_proj\debug\hello.py", line 6, in <module> import test_vs_proj ImportError: dynamic module does not define init function (inittest_vs_proj)
  • 重新表述您的问题并发布您尝试向 Python 公开的代码示例。事实上,您的问题可能与使用 Visual Studio 8 或 bjam 编译无关。

标签: c++ python boost


【解决方案1】:

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

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

此外,只有在 #include 语句之前包含 #define BOOST_PYTHON_STATIC_LIB 时,编译才会成功。我还没有弄清楚为什么。

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

【讨论】:

    【解决方案2】:

    我找到了问题,感谢 Phillip 的建议。事实证明,我只需要为 VS 8 提供正确的头文件和库目录并编译为 DLL(不是控制台程序)。

    包括目录:

    • \boost-python\boost_1_46_1
    • \Python27\include`

    图书馆目录:

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

    谁能确认这些是用于包含和链接的正确目录?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多