OpenSSL 1.0.1f 和 "undefined reference to symbol 'SSL_state@@OPENSSL_1.0.0"



今天早上,我将我的OpenSSL版本更新到了1.0.1f,在编译我当前工作的项目时,我从链接器收到了这个OpenSSL错误:

/usr/bin/ld:janus dtls.o:对符号"SSL_state@@OPENSSL_1.0.0"的未定义引用//lib/x86_64-linux-gnu/libssl.so.1.0.0:添加符号时出错:命令行中缺少DSOcollect2:错误:ld返回1退出状态

我在互联网上找到了线索,唯一发现的是我需要用-lsl和-lcrypto编译这个项目。但问题是我已经做好了准备:

/生成文件:598:JANUS_LIBS=-phread-L/usr/local/lib-lnice-lgthread-2.0-lgio-2.0-lgobject-2.0-lglib-2.0-ljansson-lsl-lcrypto-lofia sip-ua

所以我想我会问DPKG也许我伪造了什么。答案是:

$pkg配置--libs-openssl

-L/usr/local/lib -lssl -lcrypto 

这正是我所做的。

有人已经遇到这个错误并设法解决了吗?

或者我做错了什么我看不见的事?

任何帮助都将不胜感激。

Symbols请求是在链接它们之前发出的,因此库的顺序是严格的。

如果LibALibB需要的符号,则顺序为:

gcc mod1.o mod2.o -lLibA  -lLibB  

仔细检查Makefile中的所有库是否都已丢失。

最新更新