gpt4 book ai didi

qt - 使用特定 QT 版本运行二进制文件 - 不能混合不兼容的 Qt 库

转载 作者:行者123 更新时间:2023-12-04 18:44:44 31 4
gpt4 key购买 nike

我正在尝试使用 Virtual Box 中的 Ubuntu 机器复制我们目前在物理 Ubuntu 服务器上运行的应用程序。它是一个 QT 应用程序,但在服务器上我们使用 NPM 的 pm2 运行它。安装 QT 并安装应用程序所需的驱动程序后,我尝试运行它,但一直遇到此错误:

不能将不兼容的 Qt 库(版本 0x50701)与此库(版本 0x50905)混合

我从其他人那里继承了代码并且不想将项目更改为 QT5.9.5,所以我尝试使用 5.7.1 运行,我已按照其他问题的说明来更改 QT 版本到 5.7.1 但运行时仍然出现相同的错误。

我按照这里的说明进行操作:
https://unix.stackexchange.com/questions/116254/how-do-i-change-which-version-of-qt-is-used-for-qmake

在控制台中使用“qmake -v”检查 QT 版本时,我得到以下输出:

QMake 版本 3.0 在/home/sam/Qt5.7.1/5.7/gcc_64/lib 中使用 Qt 版本 5.7.1

因此,尽管在我看来我正在使用所需的 Qt 版本(5.7.1),但我仍然遇到不兼容的库问题,我对这一切都很陌生,如果这是一个愚蠢的问题,我深表歉意。如果有人能告诉我该怎么做才能使用兼容的库,那就太好了,谢谢。

最佳答案

我将尝试逐步解释这一点!

  • 每一套完整的 Qt 库称为一个 Qt“发行版”。您可以从多种来源获得 Qt 发行版:
  • 从操作系统的包管理器 (.deb/.rpm) 安装。
  • 来自 http://qt.io 上下载的 zip 文件
  • 作为来自 git
  • 的克隆仓库
  • 等等。
  • 一些可用的 Qt 发行版将预先构建,而一些则需要从源代码构建。在任何一种情况下,它们都会有 qmake特定于该特定 Qt 发行版的程序。该程序负责构建程序,以便它们链接到 qmake 的特定 Qt 发行版。是其一部分。 qmake在使用 QtCreator 构建时也使用.
  • 如果你有一个用 qmake 构建的二进制文件并且您尝试在另一台计算机上运行它,它可能会在动态链接期间发现错误的 Qt 库并吐出“Qt 版本不兼容”的错误。

  • 这个问题有很多解决方案;
  • 将所有 Qt 库(我的位于/home/myusername/Qt/5.version/gcc_64/lib/*.so 中)与您的程序可执行文件放在同一文件夹中。这将确保它们优先于可能在您的动态链接器路径中的任何其他版本的 Qt。
  • 卸载操作系统提供的 Qt 版本。这可能是不可取的,特别是如果其他程序使用它们。
  • 使用正确的 qmake 从源代码重建程序.
  • 关于qt - 使用特定 QT 版本运行二进制文件 - 不能混合不兼容的 Qt 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465171/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com