Я пытаюсь скомпилировать новейшую версию ffmpeg (в CentOS 5.3). Сначала я скачал последнюю версию libx264, скомпилировал ее с помощью --enable-static
и установил в /usr/local/
. Однако, когда я затем компилирую ffmpeg, я получаю это сообщение об ошибке:
libavcodec/libavcodec.a(libx264.o): In function `X264_init':
/usr/local/src/ffmpeg/libavcodec/libx264.c:494: undefined reference to `x264_encoder_open_125'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1
Поискав в сети, я вижу, что это может произойти, если ffmpeg подбирает более старую версию libx264, которая у меня действительно есть (в /usr/lib
) и не может быть удалена, потому что от нее зависят другие части программного обеспечения. Тогда возникает вопрос: как я могу заставить ffmpeg связываться с libx264, который мне нужен? В последний раз, когда мне приходилось это делать (правда, год назад), у меня тоже было 2 версии libx264, и я не помню, чтобы мне приходилось делать что-то особенное. Есть ли переключатель конфигурации, который я забыл?
/usr/local/
искался перед/usr/
. Что-то вроде-I/usr/local/include
и-L/usr/local/lib
. Ознакомьтесь с документацией gcc по этим флагам для получения дополнительной информации. - person blahdiblah   schedule 23.08.2012configure
имеет параметры для передачи дополнительных флагов, обычно что-то вродеconfigure --extra-cflags <blah> --extra-ldflags <blah>
или подобных. Должен быть задокументирован вconfigure --help
. - person blahdiblah   schedule 23.08.2012