私はPython Cモジュールを作成しました(ffmpeg.cこれは、いくつかのFFmpegライブラリと他のライブラリに依存しています)。リンク方法を知りたいです。
私はコンパイルしています:
cc -std=c99 -c ../ffmpeg.c -I /usr/include/python2.7 -g
私は今、次のものとリンクしようとしています:
ld -shared -o ../ffmpeg.so -L/usr/local/lib -lpython2.7 -lavutil -lavformat -lavcodec -lswresample -lportaudio -lchromaprint ffmpeg.o -lc
エラーはありません。ただし、import ffmpegPython で実行しようとすると、次のようになります。
ImportError: ./ffmpeg.so: undefined symbol: avio_alloc_context
多分これはすでに正しいです。ffmpeg.soで結果を確認したlddところ、部分的に間違ったFFmpegにリンクしています。-L/usr/local/libただし、これはデフォルトよりも優先されるため、奇妙です。たぶん、カスタム インストールされた FFmpeg (in /usr/local/lib) には、何らかの理由で静的*.aライブラリのみがインストールされており、*.soファイルがファイルよりも優先されるため*.aです。