2009-08-20 33 views
2

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

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 ??()' 

誰でもこれを成功させていただければ、大変助かりました。 Cygwin/GCCプログラムにWindows Pythonを組み込むことは可能ですか?私の他の選択肢は何ですか? (現在、私はVC++に移行することしか考えられませんが、これはかなり劇的で、GUIにはX11を使用したくありません)。

+0

UNIXのcpythonとWindowsのcpythonのものを混ぜることは、怪我の世界です。ようこそ。私は年が過ぎたと推測していますが、それでもこの作業をすることはできません。 –

答えて

0

ない直接答えていますが、2つのプロセスにシステムを分割することができ - Cygwinの1(Pythonの& C++、無wxPythonを)とWin32 1(Pythonの& wxPythonを)とXML-RPC、RPyCとそれらの間の通信、

+0

hm ...悪くない。 RPyCを見ると、プログラムと別のプラグインプロセス間の通信を処理するPythonコードをCygwin側に書くように見えます。私たちのアプリはすでにマルチスレッド化されているので、複数のプロセスに拡張することができます。提案をいただきありがとうございます、かなり複雑に思えますが、それはこれまでのところ最高のアイデアです。私はそれをさらに調べる必要があります。 –

0

32ビット/ 64ビットのミスマッチがあるようです。

64ビットマシンでコードを実行していますが(SysWow64フォルダがあるため)、私の推測では、python25.dllは32ビットです。混乱するのは、 "system32"に64ビットのDLLが含まれていることです。

+私はデバッグがオンになっているとは思わないが、公開シンボルのみが表示されます。

関連する問題