通常、このエラーはlibx264.so
、リンカーによって取得されたライブラリ バイナリがヘッダー ファイル内のバージョンと一致しないことを意味しますx264.h
。このヘッダー ファイルの次のコード行を参照してください。
/* Force a link error in the case of linking against an incompatible API version.
* Glue #defines exist to force correct macro expansion; the final output of the macro
* is x264_encoder_open_##X264_BUILD (for purposes of dlopen). */
#define x264_encoder_glue1(x,y) x##y
#define x264_encoder_glue2(x,y) x264_encoder_glue1(x,y)
#define x264_encoder_open x264_encoder_glue2(x264_encoder_open_,X264_BUILD)
通常、解決策として libx264 を自分でビルドする必要はありません。libx264-dev
他のバージョンに干渉することなく適切にインストールしたことを確認してください/usr/local/lib
。
バージョン 155: で同じ問題が発生しました
undefined reference to 'x264_encoder_open_155'
。私の場合、これは/usr/lib/x86_64-linux-gnu
不適切なコピーlibx264.so
(自分で作成し、そこに不潔にコピーしたもの) を持っていたためです。だから私がしなければならなかったのはsudo apt-get install --reinstall libx264-dev
、