PythonモジュールをロードするAudacious Media Playerのプラグインを作成しようとしています。 Python埋め込みコードは、python-2.6
ソース(埋め込み/デモ)からのものです。これは私がCCの引数に-lpython2.6 -lm -L/usr/lib/python2.6/config
を追加PythonをCに埋め込む、未定義のシンボル:PyExc_ImportError
gcc -o demo demo.c -lpython2.6 -lm -L/usr/lib/python2.6/config
、コマンドラインでコンパイルします。
そして、pygtk
とgtk
モジュールをインポートするPythonスクリプトを読み込みますが、これはうまくいきます。
しかし、私は、プラグイン(共有ライブラリ)をコンパイルした後、次のエラーが(私が見つけたとして、これはgtk
に特異的でない、それはネイティブライブラリを使用するすべてのpythonモジュールに同じです)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "./xyz.py", line 7, in <module>
import gtk
File "/usr/lib/pymodules/python2.6/gtk-2.0/gtk/__init__.py", line 30, in <module>
import gobject as _gobject
File "/usr/lib/pymodules/python2.6/gtk-2.0/gobject/__init__.py", line 26, in <module>
from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
File "/usr/lib/pymodules/python2.6/gtk-2.0/glib/__init__.py", line 22, in <module>
from glib._glib import *
ImportError: /usr/lib/libpyglib-2.0-python2.6.so.0: undefined symbol: PyExc_ImportError
を発生
Pythonインタプリタを設定するためのCコードには、PySys_SetArgv
呼び出しが不足しています。私はそれを偽造しようとしましたが、同じエラーが発生しました!
http://pastebin.com/raw.php?i=PXZuhQE3これは私が使用しているメークファイルです。私はそれを試しましたが、それは問題を解決しませんでした。答えをありがとう! – madura
@ madura: 'song_change.so'にはそのオプションを使わないでください。代わりに 'デモ'をリンクするためにそれを使用してください。 –
http://pastebin.com/GS9uegjSまだ動作しません – madura