最近用Linux編譯ffmpeg的時候出現了錯誤ERROR: libx264 not found
查看config.log原因如下
./x264/libx264.a(opencl.o): In function `x264_opencl_close_library': opencl.c:(.text+0x572): undefined reference to `dlclose' ./x264/libx264.a(opencl.o): In function `x264_opencl_load_library': opencl.c:(.text+0x5d7): undefined reference to `dlopen' opencl.c:(.text+0x5f1): undefined reference to `dlsym' opencl.c:(.text+0x60e): undefined reference to `dlsym' opencl.c:(.text+0x62b): undefined reference to `dlsym' opencl.c:(.text+0x648): undefined reference to `dlsym' opencl.c:(.text+0x665): undefined reference to `dlsym' ./x264/libx264.a(opencl.o):opencl.c:(.text+0x682): more undefined references to `dlsym' follow ./x264/libx264.a(opencl.o): In function `x264_opencl_load_library': opencl.c:(.text+0x8fd): undefined reference to `dlclose' ./x264/libx264.a(opencl.o): In function `x264_opencl_lookahead_init': opencl.c:(.text+0x1841): undefined reference to `dlopen' opencl.c:(.text+0x185b): undefined reference to `dlsym' opencl.c:(.text+0x186d): undefined reference to `dlsym' opencl.c:(.text+0x1881): undefined reference to `dlsym' opencl.c:(.text+0x1895): undefined reference to `dlsym' opencl.c:(.text+0x18d4): undefined reference to `dlclose' collect2: ld returned 1 exit status
查閱資料需要在ffmpeg編譯的時候額外指定一下-ldl庫
例如進入ffmpeg源碼目錄
./configure --enable-static --disable-shared \
--enable-encoder=libx264 --enable-libx264 --extra-libs=-ldl
重點在於
--extra-libs=-ldl
