【问题标题】:What is the difference between python3.lib and python3x.lib In the Python installation libs folder?Python安装libs文件夹中的python3.lib和python3x.lib有什么区别?
【发布时间】:2021-01-27 12:12:32
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 哪个平台? Linux?视窗?苹果系统?您是否检查过一个不是指向另一个的链接?
  • @MatthieuBrucher 平台是 windows。不,我没有,我如何确定一个与另一个相关联?
  • 我认为@yoonghm 的回答包含了您需要的内容。

标签: python windows linker python-bindings


【解决方案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 - Linkage
  2. Stackoverflow question on how MSVC linker looks for specific Python debug library
  3. PC/pyconfig.h

【讨论】:

  • python3x.lib 没有答案是什么问题?
  • 问题是关于lib 文件,所以您的回答应该提到该文件,而不是指向作者可能找到该文件的链接。
  • @yoonghm 这很有趣,谢谢。你有没有机会链接到我可以阅读的来源?
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 2013-05-11
  • 1970-01-01
  • 2011-05-22
  • 2021-09-24
  • 2019-01-28
  • 1970-01-01
  • 2018-01-25
相关资源
最近更新 更多