解决Linux下Qt程序报『QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号』错误
来源:互联网 发布:海康网络键盘1600k 编辑:程序博客网 时间:2024/05/19 08:25
解决Linux下Qt程序报『QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号』错误
在Linux开发Qt应用,程序会报这样的错误:
QString::arg:Argument missing: 无法解析SSLv2_client_method中的符号“SSLv2_client_method”:ssl,(/lib/x86_64-linux-gnu/libssl.so.1.0.0: undefined symbol: SSLv2_client_method)
QString::arg:Argument missing: 无法解析SSLv2_client_method中的符号“SSLv2_client_method”:crypto,(/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: undefined symbol:SSLv2_client_method)
qt.network.ssl:QSslSocket: cannot resolve SSLv2_client_method
QString::arg:Argument missing: 无法解析SSLv2_server_method中的符号“SSLv2_server_method”:ssl,(/lib/x86_64-linux-gnu/libssl.so.1.0.0: undefined symbol: SSLv2_server_method)
QString::arg:Argument missing: 无法解析SSLv2_server_method中的符号“SSLv2_server_method”:crypto, (/lib/x86_64-linux-gnu/libcrypto.so.1.0.0:undefined symbol: SSLv2_server_method)
qt.network.ssl:QSslSocket: cannot resolve SSLv2_server_method
QString::arg:Argument missing: 无法解析res_nclose中的符号“res_nclose”:libresolv.so.2,(/lib/x86_64-linux-gnu/libresolv.so.2: undefined symbol: res_nclose)
这是在使用QString::arg( )函数的时候报的错误,查看了相关的帖子和资料,查到是Ubuntu这个操作系统带的OpenSSL库中,没有编译SSLv2这一类函数,估计是安全方面原因吧。
了解了问题的所在,我们来寻找一下解决方法。因为我们也无意修改Ubuntu的核心OpenSSL库,但是希望不报这样的错误,因此我们在构建OpenSSL的同时,不将其放在/usr/lib上,而是放在Qt的lib目录下,这样可以避免出现这样的错误。下面是具体的解决方法,不用担心,很快就能够解决。
1、从网络上下载OpenSSL库的源代码。地址是:
http://openssl.org
我们下载最新的OpenSSL 1.0.2b。
2、Ctrl +Alt + T,打开终端,定位下载的OpenSSL位置,我这里的命令是:
cd~/Develop/openssl-1.0.2b
3、配置一下OpenSSL,让它产生动态链接库:
./configenable-shared
4、执行构建
make
5、将产生的.so文件和它的链接复制到对应的QtSDK/lib文件夹中,具体来说是这几个文件:
libcrypto.so
libcrypto.so.1.0.0
libssl.so
libssl.so.1.0.0
这里我放在的位置是:
~/Develop/Qt5.5.0Beta/5.5/gcc_64/lib
再运行相关程序,遇到了QString::args( )函数的时候,就不报这些错误了。
上面紫色底纹的文字,是我暂时没有办法解决的,原因是Linux核心库glibc其中的libresolv.so.2文件中缺少res_nclose这样的函数符号。可能也是Ubuntu团队的原因没有编译这个函数符号,解决方法是在Linux的所有发行版的glibc库中寻找到libresolv.so.2这个动态链接库,然后同样放在类似
~/Develop/Qt5.5.0Beta/5.5/gcc_64/lib
这样的目录,但是截止我写博客的时候,我仍然没有找到合适的动态链接库。
- 解决Linux下Qt程序报『QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号』错误
- 【Qt收集】QString 中的arg()
- 解决VC2010下编译QT,提示无法解析外部符号的问题
- Qt 报错LINK2019:无法解析的外部符号
- 【CentOS 6.5】解决QtCreator 安装时错误: 无法解析dbus_connection_can_send_type中的符号"dbus_connection_can_send_type"
- 在linux下使用find命令时,报错:find: missing argument to `-exec'
- 关于VS报无法解析外部符号的错误
- Qt中错误:LNK2019: 无法解析的外部符号
- vs+qt插件,无法解析的外部符号解决记录
- Qt error: LNK2019: 无法解析的外部符号 解决
- Linux下出现 “Argument list too long”错误的解决
- 关于Qt中的“无法解析的外部符号”
- linux mint Sarah下安装Qt5.7.0 解决无法解析res_nclose中符号“res_nclose"
- VC中无法解析的外部符号错误解决
- Qt 字符串QString arg()用法总结
- Qt字符串QString arg()用法
- Qt 字符串QString arg()用法总结
- QT学习之QString的arg方法
- 分治法进行排序
- web python -- WSGI接口
- CDOJ 1059 秋实大哥与小朋友(离散化)
- 今日总结
- 基于深层神经网络的命名实体识别技术
- 解决Linux下Qt程序报『QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号』错误
- [BZOJ 2038] 2009国家集训队 小Z的袜子 · 莫队算法
- .NET调用Office DCOM组件 无权限
- 字符串日历的拼接——Calendar类的静态方法 getInstance()
- xcode gdb/lldb调试命令
- 第七章
- Windows Phone的XML文件读写
- IO中,system in问题求教
- SCU 4437 Carries (2015四川省省赛B题)