通常,该错误意味着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
。