python3.lib 和 python3x.lib 在 Python 安装 libs 文件夹中有什么区别?

What is the difference between python3.lib and python3x.lib In the Python installation libs folder?

我一直在编译一个 C 库,并且 link 在 Python3 lib 文件中为 Python 绑定。我一直在使用 python39.lib 文件作为 link,但我想知道 'versioned' 数字(例如 python3x.lib)与非版本化数字( python3.lib).

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

谢谢

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

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

附加信息

  1. PEP384 - Linkage
  2. PC/pyconfig.h