11

我正在尝试将 Python 2.7 构建为静态单个 .lib 文件。

我已经对 Python 源代码进行了以下更改:

  1. 更改为“发布”模式。
  2. 将所有 DLL 项目更改为静态库 (.lib) 并将运行时库设置为 /MT
  3. 将预处理器定义 Py_NO_ENABLE_SHARED 添加到 python 和 pythoncore

我已经设法将 pythoncore 项目编译为 pythoncore.lib(大约 11mb 大小),但是在尝试编译 python 项目时,我得到以下链接错误:

错误 LNK2019:函数 __PyImport_GetDynLoadFunc C:\Python-2.7.3_Source\PCbuild\pythoncore.lib(dynload_win.obj) 中引用的未解析的外部符号 __Py_ActivateActCtx 错误 LNK2019:函数 __PyImport_GetDynLoadFunc C:\Python-2_7 中引用的未解析的外部符号 __Py_DeactivateActCtx。 PCbuild\pythoncore.lib(dynload_win.obj) 错误 LNK2019:无法解析的外部符号 __Py_hgidentifier 在函数 __PySys_Init C:\Python-2.7.3_Source\PCbuild\pythoncore.lib(sysmodule.obj) 中引用 错误 LNK2019:无法解析的外部符号 __Py_hgversion 在函数中引用__PySys_Init C:\Python-2.7.3_Source\PCbuild\pythoncore.lib(sysmodule.obj) 错误 LNK2019:未解析的外部符号 _Py_GetBuildInfo 在函数 _Py_GetVersion C:\Python-2.7.3_Source\PCbuild\pythoncore.lib(getversion.obj) 中引用

谁能帮我?

谢谢,

伊丹

- - - - - - - - - - 更新 - - - - - - - - - - - - - - - --------

我只是设法使它工作..如果它可以帮助任何人,这些是我所做的更改:

  1. 添加Modules\getbuildinfo.c到 pythoncore 项目。
  2. PC\dl_nt.c将此行从#ifdef Py_ENABLE_SHARED第 14 行移动到第 79 行(就在 DllMain 上方)。

……就是这样!

您现在可以链接到 pythoncore.lib :)

伊丹

4

0 回答 0