我正在編譯源自Snow Leopard的ffmpeg。使用Macport不是一個選項,因爲我在ffmpeg中有一些自定義的修改。本作的命令是:對於架構x86_64,由於未定義符號_x264_encoder_open_112,Ffmpeg編譯失敗
$ ./configure --enable-gpl --enable-libmp3lame --enable-static \
--disable-shared --enable-libx264 --enable-pthreads \
--disable-doc --enable-avfilter
$ make
錯誤:
CC ffplay.o
ffplay.c: In function ‘SDL_main’:
ffplay.c:3157: warning: assignment discards qualifiers from pointer target type
LD ffplay_g
Undefined symbols for architecture x86_64:
"_x264_encoder_open_112", referenced from:
_X264_init in libavcodec.a(libx264.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [ffplay_g] Error 1
我已經從源,其中又以精編libx264。
$ cd x264-snapshot-20101228-2245; ./configure && make && sudo make install
...它包含符號 「_x264_encoder_open_112」
$ nm ./libx264.a | grep _x264_encoder_open_112
0000000000003ef0 T _x264_encoder_open_112
000000000000d7b0 S _x264_encoder_open_112.eh
可能是什麼回事?
你有沒有解決這個問題?我有完全相同的問題... – beardedd
@beardedd我沒有一個確切的答案,但我必須重建庫。我想這是來自macport的衝突。所以,你可能需要暫時移除這些庫以強制gcc從'/ usr'中選擇x264.a,而不是'/ opt'。保持我們的發佈! –