2

私は現在、C++ で書かれた Cygwin/GCC アプリケーションに取り組んでいます。このアプリケーションでは、プラグインを実行するために python を埋め込む必要があります。Cygwin python ライブラリを使用して組み込みに成功し、プログラムの一部として単純な python ファイルを実行することができました。ただし、Python ファイルでは Windows GUI フレームワーク (wxPython) を使用する必要があるため、Windows Python 環境を組み込むことができる必要があります。そうしないと、Python ファイルでフレームワークを使用できません。これを行うために、これらの手順のステップ 2 を使用して libpython25.a を作成しました。次に、Windows インストールのライブラリ/ヘッダー ファイルを使用してコンパイルしました。ただし、実行すると、プログラムがクラッシュし、奇妙なデバッガー出力が表示されます (奇妙なことに、デバッグ情報はオンになっています)。

gdb: unknown target exception 0xc0000008 at 0x77139a13
Program received signal ?, Unknown signal.
[Switching to thread 2216.0x119c]
0x77139a13 in ntdll!RtlLockMemoryZone () from /cygdrive/c/Windows/system32/ntdll.dll
(gdb) where
#0  0x77139a13 in ntdll!RtlLockMemoryZone () from /cygdrive/c/Windows/system32/ntdll.dll
#1  0x030c1c7c in ?? ()
#2  0x030c1c80 in ?? ()
#3  0x1e0d0e80 in python25!_PyTime_DoubleToTimet ()
   from /cygdrive/c/Windows/SysWOW64/python25.dll
#4  0x00000000 in ?? ()'

誰かがこれを成功させた場合は、助けていただければ幸いです。Windows python を Cygwin/GCC プログラムに埋め込むことは可能ですか? そうでない場合、他のオプションは何ですか?(今のところ、VC++ に移行することしか考えられませんが、これはかなり抜本的なものになるでしょう。また、GUI に X11 を使用したくありません)。

4

2 に答える 2

0

32 ビット / 64 ビットの不一致があるようです。

64ビットマシンでコードを実行しています(SysWow64フォルダーがあるため)が、python25.dllは32ビットだと思います。紛らわしいのは、「system32」に 64 ビット DLL が含まれていることです。

+デバッグがオンになっていないと思います。パブリック シンボルしか表示されません。

于 2011-04-12T03:28:12.820 に答える