root@760501de936d:/home/project/build# ldconfig -p | grep ssl
libssl.so.1.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so.1.1
libssl.so.1.0.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
libssl.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so我的项目正在尝试与OpenSSL链接。如何强制它使用libssl.so.1.1?
我正在使用cmake
find_library(LIB_SSL ssl)
然后
target_link_libraries(h264_decoder_cli PRIVATE
${LIB_SSL} ${LIB_CRYPTO} ...)然而,我得到了像这样的东西
tls_openssl.c:(.text+0x3a8): undefined reference to `OPENSSL_init_ssl'我不知道为什么,但是只有1.1版本有这个符号
root@760501de936d:/home/project/build# nm -D /usr/lib/x86_64-linux-gnu/libssl.so | grep OPENSSL_init_ssl
root@760501de936d:/home/project/build# nm -D /usr/lib/x86_64-linux-gnu/libssl.so.1.1 | grep OPENSSL_init_ssl
0000000000033ff0 T OPENSSL_init_ssl我检查了cmake是如何编译的,它简单地把-lssl -lcrypto
发布于 2020-07-26 16:12:54
要查找OpenSSL,CMake有一个查找器模块,所以你不需要使用其他任何东西(即find_library)。使用find_package(OpenSSL 1.1 ...)要求特定版本。
https://stackoverflow.com/questions/63094628
复制相似问题