QT5引用库出错即解决

先看错误:
/usr/bin/ld: warning: libicui18n.so.56, needed by //opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicuuc.so.56, needed by //opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicudata.so.56, needed by //opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘u_strToLower_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_getStandardName_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_getAlias_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘uenum_next_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘u_strToUpper_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_setSubstChars_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_getTimeZoneDisplayName_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_fromUnicode_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘u_errorName_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘uenum_close_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_getDSTSavings_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_openTimeZoneIDEnumeration_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_setMillis_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucol_close_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucol_getSortKey_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_get_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucol_open_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_compareNames_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_clone_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_open_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucol_setAttribute_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_openCountryTimeZones_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_open_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_openTimeZones_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_countAliases_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_inDaylightTime_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_close_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_getAvailableName_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_getDefaultName_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucal_getDefaultTimeZone_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_toUnicode_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucol_strcoll_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_close_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_getMaxCharSize_56’未定义的引用
//opt/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5:对‘ucnv_countAvailable_56’未定义的引用

发现

根据错误提示,libQt5Core.so.5找不到libicui18n.so.56等动态库。为什么会找不到呢?我用lld命令看了libQt5Core.so.5:

jie@mao:/opt/Qt5.10.0/5.10.0/gcc_64/lib$ ldd libQt5Core.so.5linux-vdso.so.1 =>  (0x00007ffc1efaa000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fab9827e000)libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fab98064000)libicui18n.so.56 => /opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicui18n.so.56 (0x00007fab97bcb000)libicuuc.so.56 => /opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicuuc.so.56 (0x00007fab97813000)libicudata.so.56 => /opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicudata.so.56 (0x00007fab95e30000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fab95c2c000)libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fab95a2a000)libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fab95719000)libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fab95397000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fab9508e000)libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fab94e78000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fab94aae000)/lib64/ld-linux-x86-64.so.2 (0x00007fab98be9000)libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fab9483e000)

发现:

libicui18n.so.56 => /opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicui18n.so.56 (0x00007fab97bcb000)
libicuuc.so.56 => /opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicuuc.so.56 (0x00007fab97813000)
libicudata.so.56 => /opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicudata.so.56 (0x00007fab95e30000)

其中/opt/Qt5.10.0/5.10.0/gcc_64/lib/./libicui18n.so.56多了个点。

分析

由于libicui18n.so.56等动态库路径多了个点,导致libQt5Core.so.5找不到它们,所以导致了错误。由于Qt5我是正常安装的,动态库之间理应正确的连在一起,产生这个错误的原因,我猜是QT自己的问题。

解决

既然找不到libicui18n.so.56等动态库,那我们可以显式的添加其库路径到编译器,如果是使用g++命令,直接把包含libicui18n.so.56等动态库的路径添加到-l后,如果是使用CMake编译程序,可以在CMakeLists.txt中添加一句:

link_directories("/opt/Qt5.10.0/5.10.0/gcc_64/lib")

QT5引用库出错即解决相关推荐

  1. pip install skimage安装skimage库出错的解决办法

    pip install skimage安装skimage库出错的解决办法 安装skimage库出错 pip install skimage 解决办法: pip install scikit-image

  2. python安装lxml库出错_python安装lxml出错的解决方法

    python安装lxml出错的解决方法 发布时间:2020-08-07 09:44:14 来源:亿速云 阅读:71 作者:小新 这篇文章给大家分享的是有关python安装lxml出错的解决方法的内容. ...

  3. unity引用动态库的错误解决办法

    unity引用动态库的错误解决办法 引用动态库的错误 引用其他类库程序集 .NET Standard 2.0 配置文件 .NET 4.x 配置文件 引用动态库的错误 旧版unity编写的程序使用新版u ...

  4. [软件工具][原创]pcl引用库一键配置到VisualStudio中支持vs2015-v2022使用教程

    你还在手动配置pcl吗?那你out了,由于pcl的include,lib太多很容易配置出错,为了解决配置效率低下配置出错问题,我们制作了一个全系列支持pcl配置工具,大家只要安装好pcl并保证有PCL ...

  5. ios 静态库冲突的解决办法

    参考:http://www.cnblogs.com/machao/p/5288460.html ios 静态库冲突的解决办法 最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的 ...

  6. centos7安装python3.7.4_基于centos7 安装python3.6.4出错的解决方法

    基于centos7 安装python3.6.4出错的解决方法 错误:zipimport.ZipImportError: can't decompress data; zlib not availabl ...

  7. pip install skimage安装skimage库出错问题

    目录 pip install skimage安装skimage库出错的解决方案 安装skimage库出错 错误如下: 解决方法如下: pip install skimage安装skimage库出错的解 ...

  8. Python pip install 下载出错的解决办法

    Python pip install 下载出错的解决办法 在Windows操作系统下,为Python IDLE 编译器安装扩展程序库的步骤可以查看链接:Python pip install 指令的使用 ...

  9. .net core 1.1 mysql_Asp.net Core 1.1 升级后操作mysql出错的解决办法

    这篇文章主要介绍了Asp.net Core 1.1 升级后操作mysql出错的解决办法,需要的朋友可以参考下 遇到问题 core的版本从1.0升级到1.1,操作mysql数据库,查询数据时遇到Miss ...

最新文章

  1. 三十六亿的《哪吒》历时五年,如何用AI解决动画创作难题?
  2. Softmax和Cross-entropy是什么关系?
  3. 黑色诱惑 -- Media Player 11
  4. 经典C语言程序100例之九四
  5. SharePoint 2013开发入门探索(二)- 列表操作
  6. mysql数据库的多实例_MySQL数据库多实例应用实战 - 橙子柠檬's Blog
  7. 嘉善 机器人比赛_电脑机器人比赛辅导教师培训在浙师大嘉善附校举行
  8. oracle sysaux表空间不足,sysaux 表空间不足问题处理
  9. 让人头疼的吃鸡外挂,一起来逆向分析一波
  10. oracle恢复几天前的数据,恢复oracle数据到以前的某个时间点
  11. Amazon和Instagram网站视频下载
  12. linux如何查看python的版本_Python基础知识:如何检查 Python 版本
  13. flink-sqlclient报错
  14. 见过这么有才的笑话吗?
  15. CodeForces #352B.Jeff and Periods
  16. Java语言高级(第三部分)异常多线程 ->(个人学习记录笔记)
  17. 看操作系统是x84还是x64啊
  18. matlab的程序设计心得和体会,程序设计心得体会(多篇).doc
  19. Android布局优化
  20. CVE-2021-1647:Microsoft Defender远程代码执行漏洞通告

热门文章

  1. 计算机视觉会议(CVPR,ECCV,ICCV,NIPS,AAAI,ICLR等)
  2. SQLServer集群故障节点DISCONNECTED
  3. 金山云智能营销平台再升级,AI 投放助力游戏厂商精准到达;微医发布 AI 解决方案,提升县域医疗服务能力...
  4. bilibili源代码泄露,go-common
  5. Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration
  6. 敏捷软件开发scrum介绍
  7. word2007目录排版问题
  8. kali 将系统文件夹名称设置为英文
  9. 【文献翻译】Select-Storage: A New Oracle Design Pattern on Blockchain
  10. PyQt4对话框(dialog类型介绍)