首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制-lssl链接libssl.so.1.1而不是libssl.so?

如何强制-lssl链接libssl.so.1.1而不是libssl.so?
EN

Stack Overflow用户
提问于 2020-07-26 07:34:05
回答 1查看 421关注 0票数 0
代码语言:javascript
复制
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)

然后

代码语言:javascript
复制
target_link_libraries(h264_decoder_cli PRIVATE 
${LIB_SSL} ${LIB_CRYPTO} ...)

然而,我得到了像这样的东西

代码语言:javascript
复制
tls_openssl.c:(.text+0x3a8): undefined reference to `OPENSSL_init_ssl'

我不知道为什么,但是只有1.1版本有这个符号

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2020-07-26 16:12:54

要查找OpenSSL,CMake有一个查找器模块,所以你不需要使用其他任何东西(即find_library)。使用find_package(OpenSSL 1.1 ...)要求特定版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63094628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档