Linux qt “/usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found” error解决方法

本文介绍在调试Qt项目时遇到的库文件未找到错误,并提供了解决方案,包括临时和永久修改环境变量LD_LIBRARY_PATH的方法,确保Qt库能被正确加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在调试qt项目时遇到如下问题

error_img

这句error的意思是在/usr/lib/x86_64-linux-gnu/下找不到需要的这些库:libQt5Core.so.5、libQt5Widgets.so.5、libQt5X11Extras.so.5、libQt5Gui.so.5。或者,换句话说,不能正确找到这些动态链接的正确路径。

解决方法:

声明环境变量 LD_LIBRARY_PATH

LD_LIBRARY_PATH=/home/{YOUR USER NAME}/Qt5.12.0/5.12.0/gcc_64/lib:$LD_LIBRARY_PATH
export $LD_LIBRARY_PATH

注意:要添加的路径为你qt安装目录中lib的路径;且注意格式,不要出现空格,否则会报错!

以上方法只是临时修改,要想永久修改,最好修改/etc/profile文件

vim /etc/profile
在文件末尾添加:
export LD_LIBRARY_PATH="/your/dynamic/library/path/:$LD_LIBRARY_PATH"

注意:要添加的路径为你qt安装目录中lib的路径;注意书写格式,不要丢双引号,不要出现空格,否则无效!

 

参考链接:

https://www.cnblogs.com/sunchaothu/p/9962675.html

https://blog.youkuaiyun.com/neuq_jtxw007/article/details/78772483

https://blog.youkuaiyun.com/qq_25738937/article/details/81837735

https://stackoverflow.com/questions/36128645/error-on-execution-version-qt-5-not-found-required-by

<think>好的,用户的问题是希望在Linux系统上安装或兼容多个特定版本的GLIBC、GLIBCXX、CXXABI以及Qt库,以支持他们的APD应用程序运行。首先,我需要回忆处理这类依赖问题的常规方法,并结合提供的引用信息来分析。 根据用户提供的引用内容,特别是引用[3]提到在运行Kaldi实例时出现GLIBCXX版本未找到的问题,用户可能遇到了类似的动态链接库缺失问题。常见的解决方案包括升级GCC、手动安装所需库,或者使用容器技术隔离环境。 首先,我需要考虑GLIBC和GLIBCXX的兼容性。GLIBC是GNU C库,不同版本可能不兼容,直接升级系统GLIBC风险较大,可能导致系统不稳定。因此,通常建议避免直接替换系统GLIBC,而是通过其他方法解决。 接下来,用户需要安装多个特定版本的GLIBC(如2.29, 2.32等)、GLIBCXX(如3.4.30, 3.4.29)以及Qt 5.14。对于GLIBCXX,这些版本通常与GCC版本相关。例如,GLIBCXX_3.4.30对应GCC 11或更高版本。因此,安装较新的GCC可能会提供所需的GLIBCXX版本。用户可能需要编译安装新版本的GCC,并确保应用程序链接到新版本的库。 对于Qt 5.14,可以考虑从Qt官网下载并安装指定版本,或者使用包管理器(如apt)添加Qt的仓库来安装。需要注意Qt库的路径是否被正确设置,以便应用程序能够找到。 另外,用户提到了CXXABI_1.3.13,这也与GCC的版本有关。CXXABI的版本通常随GCC升级而更新,因此安装对应GCC版本可能解决此问题。 在步骤方面,可能的解决方案包括: 1. 使用非系统路径安装高版本GCC,通过设置环境变量(如LD_LIBRARY_PATH)来优先使用新版本的库。 2. 使用容器技术如Docker或Singularity,创建一个包含所有依赖的隔离环境,避免影响宿主机系统。 3. 使用静态链接的方式编译应用程序,将依赖库打包进可执行文件中,但这可能不适用于所有情况,尤其是涉及GPL许可的库。 4. 利用第三方工具如patchelf修改程序的RPATH,使其指向自定义的库路径。 需要提醒用户注意,直接升级系统GLIBC可能导致系统崩溃,因此推荐使用更安全的方法,如容器或非系统路径安装。同时,检查应用程序的文档是否有特定的依赖管理建议,或联系软件供应商获取支持。 最后,生成相关问题需要考虑用户可能遇到的后续问题,如如何检查已安装库的版本,如何设置环境变量,如何处理多版本共存冲突等。</think>### 分步解决方案 在Linux系统中解决依赖库版本问题需谨慎操作,以下是具体步骤: 1. **检查现有库版本** 使用命令查看当前支持的GLIBCXX版本: ```bash strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX ``` 若输出中缺少所需版本(如`GLIBCXX_3.4.30`),说明需要升级GCC[^2][^3]。 2. **安装高版本GCC** - 通过源码编译安装GCC 11(支持GLIBCXX_3.4.29+): ```bash sudo apt-get install build-essential wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz tar -xzf gcc-11.4.0.tar.gz cd gcc-11.4.0 ./contrib/download_prerequisites mkdir build && cd build ../configure --prefix=/opt/gcc-11.4.0 --disable-multilib make -j$(nproc) sudo make install ``` - 更新动态库链接: ```bash export LD_LIBRARY_PATH=/opt/gcc-11.4.0/lib64:$LD_LIBRARY_PATH ``` 3. **处理GLIBC依赖** **警告:直接升级系统GLIBC可能导致系统崩溃!** 推荐通过以下方法- **使用容器隔离环境** 通过Docker运行带有所需GLIBC版本的基础镜像: ```dockerfile FROM ubuntu:22.04 # 自带GLIBC_2.35+ RUN apt-get update && apt-get install -y qt5-default COPY apd_app /app CMD ["/app"] ``` - **手动编译GLIBC(仅限测试环境)** ```bash wget https://ftp.gnu.org/gnu/glibc/glibc-2.34.tar.gz tar -xzf glibc-2.34.tar.gz mkdir glibc-build && cd glibc-build ../glibc-2.34/configure --prefix=/opt/glibc-2.34 make -j$(nproc) sudo make install ``` 4. **安装Qt 5.14** - 通过官方安装器: ```bash wget https://download.qt.io/official_releases/qt/5.14/5.14.2/qt-opensource-linux-x64-5.14.2.run chmod +x qt-opensource-linux-x64-5.14.2.run ./qt-opensource-linux-x64-5.14.2.run ``` - 设置环境变量: ```bash export PATH=/opt/Qt5.14.2/5.14.2/gcc_64/bin:$PATH export LD_LIBRARY_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/lib:$LD_LIBRARY_PATH ``` 5. **验证兼容性** 使用`ldd`检查二进制文件依赖: ```bash ldd apd_app | grep "not found" ``` 若仍有缺失库,可通过`patchelf`强制指定库路径: ```bash patchelf --set-rpath '/opt/gcc-11.4.0/lib64:/opt/glibc-2.34/lib' apd_app ``` ### 引用说明 - 升级GCC可获取新版GLIBCXX支持[^3] - GLIBC版本需与系统深度兼容,建议通过容器隔离[^1][^4] - Qt库路径需通过环境变量明确指定
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值