C 言語で Python モジュールを作成しようとしていますが、C プログラム自体がサードパーティのライブラリ (libwiringPi.so) に依存しているため、Python ソース プログラムで生成したライブラリをインポートすると、プロンプトが表示されます。関数は未定義です。これらの関数はすべて、そのサードパーティ ライブラリに含まれています。コンパイルしたモジュールがそのライブラリに動的にリンクできるようにするには、どのようにコンパイルすればよいですか?
また、gcc を使用してダイナミック リンク ライブラリを手動でコンパイルし、その後 ctyes を使用しようとしましたが、同じエラーが報告されました。生成されたモジュールの C コードと setup.py コードは両方とも、 Pythonのソースパッケージ。
私のCプログラムコード
リーリーsetup.py
リーリー ######エラーメッセージ###### リーリーringa_lee2017-05-18 11:02:29
ねぇ、朝起きてふと思い立ったので、早速やってみました。
この問題は、コンパイル時に-lwiringPi
选项来引用这个库,但是我仔细看了以下执行 python setup.py build
之后执行的编译命令,根本就没有加这个选项,解决方式很简单,只需要修改一下setup.py,在Extension里面加上 libraries = ['wiringPi']
このパラメータを追加する必要があるために発生します。変更されたsetup.pyは次のようになります