ffmpeg 可以使用libssl.so libcrypto.so动态库, 或者使用libssl.a libcrypto.a静态库, 接下来是说明明库存在,但是编译还是提示找不到openssl。
搜索ffmpeg源码,可以发现是在configure文件里打印的该提示。 源码如下:
代码语言:txt复制enabled openssl && { use_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl ||
check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ||
use_pkg_config openssl openssl openssl/ssl.h SSL_library_init ||
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
die "ERROR: openssl not found"; }
可以发现ffmpeg在一个一个的尝试openssl,我的config.log里就显示已经检查到了最后一个,但是还是没有找到openssl。
原因是我用的openssl库比较新,老的openssl库使用‘SSL_library_init’初始化, 新版本openssl使用‘OPENSSL_init_ssl’初始化,又因为没有检查通过,所以这里就报这个错误了。 解决方法是增加一行检查‘check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ’ 即可通过,上文是我已经增加过的。