8

Ubuntu 12.04にffmpegをインストールするとき

次のエラーが表示されます

libavcodec/libavcodec.a(libx264.o): In function `X264_init':
/root/ffmpeg/libavcodec/libx264.c:492: undefined reference to `x264_encoder_open_125'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1

http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuideの指示に従っています

誰でもこのエラーについて考えていますか?

4

3 に答える 3

9

これは、パッケージ管理システムを使用して x264 を既にインストールしているユーザーにとって典型的な問題です。これは、少なくとも 2 つの方法で解決できます。

  1. パッケージ管理システムを使用して、システムから既存の x264 をアンインストールします。

    # apt-get remove x264
    

    ソースから新しいx264をコンパイルします

  2. x264 パッケージをアンインストールせずに、新しい x264コンパイルしてから ffmpegをコンパイルし、コンパイル済みの x264 ライブラリがあるディレクトリを指定して、新しくコンパイルされた x264 ライブラリを使用するように指示しLD_LIBRARY_PATHます。

    LD_LIBRARY_PATH=/path/to/my/compiled/x264/library ./configure --enable-libx264 ...
    

詳細については、次のリンクを参照してください。

于 2013-06-18T16:56:11.323 に答える
0

通常、このエラーは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

于 2020-10-17T21:01:36.347 に答える
0

ヘッダーと lib パスを追加します

gcc x264_test1.c -o x264_encoder -I/usr/local/include -L/usr/local/lib -lpthread -lm -lx264

于 2018-10-15T06:41:33.630 に答える