今天早上我将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:添加符号时出错:命令行中缺少DSO collect2:错误:ld返回1退出状态
我去了互联网上寻找线索,我发现的唯一一件事是我需要用-lssl和-lcrypto编译项目。 但问题是我已经做了:
./ Makefile:598:JANUS_LIBS = -pthread -L / usr / local / lib -lnice -lgthread-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -ljansson -lssl -lcrypto -lsofia-sip-你好
所以我猜我会问DPKG也许是我伪造的东西。这是答案:
$ pkg-config --libs openssl
-L/usr/local/lib -lssl -lcrypto
这正是我所做的。
有没有人遇到过这个错误并且修复了它?
或许我做错了什么我看不到?
非常感谢任何帮助。
答案 0 :(得分:0)
符号请求在链接之前发出,因此lib的顺序是严格的。
如果LibA有符号,LibB需要该订单
gcc mod1.o mod2.o -lLibA -lLibB
仔细检查makefile中的所有库是否都缺失。