【问题标题】:Why GCC-compiled Python libraries compatible across compiler versions while MSVC ones are not?为什么 GCC 编译的 Python 库在编译器版本之间兼容,而 MSVC 则不兼容?
【发布时间】:2020-10-11 18:02:35
【问题描述】:

我正在向 Linux 和 Windows 上的第 3 方应用程序的 Python 解释器添加一些 Python 包(来自 pip)。在他们的应用程序的 Linux 版本中,他们针对 GCC 4.xx 编译了 Python,而在他们的 Windows 版本中,他们针对 MSC 1900 进行了编译。

在 Windows 上,我必须构建具有相同 MSVC 版本的 .pyd 文件的每个 Python 包,否则尝试在 Python 中导入它们时会出现运行时错误。在 Linux 上,我能够在 4.xx 构建的解释器中导入使用任何 GCC 版本构建的 Python 库。

有人能解释一下它是如何工作的,或者为什么用不同的 MSVC 版本构建的二进制文件不能一起工作吗?

【问题讨论】:

    标签: python gcc visual-c++ python-extensions


    【解决方案1】:

    2015 年之前的每个 Visual Studio 版本都有自己的 C 运行时版本,必须单独安装。在 Visual Studio 2015 中,Universal CRT has been introduced 现在是 Windows 10 的一部分。

    尽管如此,这并不意味着使用不同运行时的库是不兼容的。您遇到的错误可能是由于您的系统上没有安装相应的运行时版本。除了they should work just fine(除了一些special cases)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      相关资源
      最近更新 更多