libqt5network.so 中的链接器错误

Linker errors in libqt5network.so

本文关键字:错误 链接 so libqt5network      更新时间:2023-10-16

亲爱的堆栈溢出用户您好,

最近我尝试在我的 suse 机器上编译一个 qt5 项目。似乎我的链接器拒绝将 libqt5network.so 链接到openssl。我不明白为什么:

/usr/lib64/libQt5Network.so:-1: error: undefined reference to    `TLSv1_1_server_method'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `SSL_set_psk_client_callback'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `TLSv1_1_client_method'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `SSL_select_next_proto'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `SSL_get0_next_proto_negotiated'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `TLSv1_2_client_method'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `SSL_CTX_set_next_proto_select_cb'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `TLSv1_2_server_method'
/usr/lib64/libQt5Network.so:-1: error: undefined reference to `EC_curve_nist2nid'

这种方法似乎是罪魁祸首,它应该通过其公共 API 从 worldcat 图书数据库中下载一本书的一些信息:

    void Worldcat::search(QString searchTerm){
         if(book1!=NULL){
             setIsbn(searchTerm);
             QNetworkRequest request(apiUri+getIsbn()+QString("?method=getMetadata&format=json&fl=*"));
             networkManager = new QNetworkAccessManager(this);
             connect(networkManager,SIGNAL(finished(QNetworkReply*)),
                     this,SLOT(replyFinished(QNetworkReply*)));
             networkManager->get(request);
         }
     }

qmake.pro 文件

http://pastebin.com/Qk83kLaQ

生成的制作文件,它很大,因此粘贴箱:

http://pastebin.com/KuF9Y0JS

我会自己回答,因为我在Mongodb也拒绝开始时找到了解决方案,也许它对某人有用,以下内容确实有帮助:

zypper in libopenssl-devel
rpm -e --nodeps libopenssl0_9_8
cd /usr/lib64/
ln -s libssl.so libssl.so.0.9.8
ln -s libcrypto.so libcrypto.so.0.9.8

似乎滚筒杂草的openssl库一团糟。

我在哪里找到解决方案:

https://stackoverflow.com/a/32406299/4958693

原始来源:

https://jira.mongodb.org/browse/SERVER-20259

相关文章: