0

我一直在编译一个 C 库,并在 Python3 库文件中链接 Python 绑定。我一直在使用 python39.lib 文件作为链接,但我想知道“版本化”数字(例如 python3x.lib)与非版本化数字(python3.lib)之间有什么区别。

在回答一个问题时,忘了提到这是使用 gcc 在 Windows 上编译的。

谢谢

4

1 回答 1

1

python3.lib仅包含 cpython 程序(或 Python 的 C 扩展)使用的关键库函数。python3x.lib(例如python38.lib, python39.lib)包含完整的库函数。您应该链接到,python3.lib以便您的构建配置不受较小的 Python 版本升级(例如从 3.8 到 3.9)的影响。

链接非常依赖于平台和编译器。PC/pyconfig.h请参见(参见参考文献 [3])中的代码注释。

附加信息

  1. PEP384 - 联动
  2. 关于 MSVC 链接器如何查找特定 Python 调试库的 Stackoverflow 问题
  3. PC/pyconfig.h
于 2021-01-27T13:53:57.443 回答