今天早上,我将我的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请求是在链接它们之前发出的,因此库的顺序是严格的。
如果LibA
有LibB
需要的符号,则顺序为:
gcc mod1.o mod2.o -lLibA -lLibB
仔细检查Makefile
中的所有库是否都已丢失。