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

标签 python windows linker python-bindings

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

在回答问题时,忘记提及这是使用 gcc 在 Windows 上编译的。

谢谢

最佳答案

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

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

其他信息

  1. PEP384 - Linkage
  2. Stackoverflow question on how MSVC linker looks for specific Python debug library
  3. PC/pyconfig.h

关于python - Python安装libs文件夹中的python3.lib和python3x.lib有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65918923/

相关文章:

python - 比较不同长度的 Pandas 数据帧

python - 安装了 Anaconda 4.3.1(64 位),其中包含 Python 3.6 但缺少 pip3,无法安装 tensorflow

python - Django项目很慢

python - 使用 Python 将 CSV 元素从列合并到行

regex - 从 Notepad++ 中提取 FunctionList 的函数名称

node.js - 如何通过 Node.js -e "evaluate script"命令行开关使用 Unicode 文字

c - 如何将 C#defines 包含在 .icf 链接器文件中?

windows - 通缉 : WinAPI calls logger

c - 多个符号定义和静态库

c - 编译步骤