Python 2.7 を静的な単一の .lib ファイルとしてビルドしようとしています。
Python ソース コードに次の変更を加えました。
- 「リリース」モードに変更します。
- すべての DLL プロジェクトをスタティック ライブラリ (.lib) に変更し、ランタイム ライブラリを /MT に設定します。
- プリプロセッサ定義 Py_NO_ENABLE_SHARED を python と pythoncore に追加
pythoncore プロジェクトを pythoncore.lib (約 11 MB サイズ) にコンパイルできましたが、python プロジェクトをコンパイルしようとすると、次のリンク エラーが発生します。
エラー LNK2019: 関数 __PyImport_GetDynLoadFunc C:\Python-2.7.3_Source\PCbuild\pythoncore.lib(dynload_win.obj) で参照されている未解決の外部シンボル __Py_ActivateActCtx PCbuild\pythoncore.lib(dynload_win.obj) エラー LNK2019: 関数 __PySys_Init で参照されている未解決の外部シンボル __Py_hgidentifier 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) で参照されています
誰でも私を助けることができますか?
ありがとう、
イダン
- - - - - - - - - - アップデート - - - - - - - - - - - - - - - --------
私はちょうどそれを機能させることができました..それが誰かを助けるなら、これらは私が行った変更です:
Modules\getbuildinfo.c
pythoncore プロジェクトに追加します。- この
PC\dl_nt.c
行#ifdef Py_ENABLE_SHARED
を 14 行目から 79 行目 (DllMain のすぐ上) に移動します。
... 以上です!
これで pythoncore.lib にリンクできます:)
イダン