【问题标题】:Compiling Python extensions with VC2010用VC2010编译Python扩展
【发布时间】:2011-06-08 10:36:59
【问题描述】:

我有一些用 C++0x 编写的代码,我想将它们作为扩展暴露给 Python 2.7。

由于它使用了几个 C++0x 特性,我不想在 C++03 中重写它,所以我不得不使用 VC2010。但是默认的 Python 2.7 安装是用 VC2008 编译的。

我发现this post 解释了如何强制 distutils 使用 VC2010,但评论者指出这将导致 msvcr90.dll(由解释器链接)和 msvcr100.dll(由扩展名链接)之间的 DLL 冲突)。

有没有办法在VC2010中编译扩展而无需重新编译Python?

(我最近才开始在 Windows 上编程,所以我对动态链接在那里的工作原理没有确切的了解)

【问题讨论】:

    标签: c visual-c++ msvcrt python-module


    【解决方案1】:

    不,没有。

    就像您已经知道的那样,当您使用 VS2010 工具集编译某些东西时,它会链接到 msvcr100.dll。由于 Python 与 msvcr90.dll 链接,因此在同一个应用程序中混合它们时,您会得到令人不快的惊喜。

    你现在最好的选择可能是停止使用任何 C++0x 功能并使用 VS2008 或 mingw 编译你的扩展。

    如果这是你不打算分发的东西并且它只是为了玩,使用 VS2010 编译 Python 是唯一的选择。

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 2012-01-26
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      相关资源
      最近更新 更多