因為要用 gdb run,所以用 --disable-optimizations 的 option。
結果會出現:
In file included from /home/ffmpeg/ffmpeg/libavcodec/x86/dsputil_mmx.c:31:
/home/ffmpeg/ffmpeg/libavcodec/x86/dsputil_mmx.h: In function ‘transpose4x4’:
/home/ffmpeg/ffmpeg/libavcodec/x86/dsputil_mmx.h:98: error: can't find a register in class ‘GENERAL_REGS’ while reloading ‘asm’
/home/ffmpeg/ffmpeg/libavcodec/x86/dsputil_mmx.h:98: error: ‘asm’ operand has impossible constraints
make: *** [libavcodec/x86/dsputil_mmx.o] Error 1
google 的結果說是 gcc 的問題,好像是 ebp 可不可以拿來用的問題。
但是 apply 所有 google 到的 solution 都沒有效。
所以,只好...
configure --disable-mmx --disable-mmx2 --disable-optimizations --disable-stripping
這樣就 OK 了...
很糟糕又丟臉的方法,但是主要是要 trace transport stream 的 decoding process,所以 assembly optimize 部份可以先略過...
沒有留言:
張貼留言