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

2024-03-10

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

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

Thanks


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

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

附加信息

  1. PEP384 - 联动 https://www.python.org/dev/peps/pep-0384/#id22
  2. 关于 MSVC 链接器如何查找特定 Python 调试库的 Stackoverflow 问题 https://stackoverflow.com/questions/60522969/why-is-the-linker-looking-for-python36-d-lib-when-not-specified-anywhere
  3. PC/pyconfig.h https://github.com/python/cpython/blob/9cc9e277254023c0ca08e1a9e379fd89475ca9c2/PC/pyconfig.h#L270
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐