首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用特定的QT版本运行二进制-不能混合不兼容的Qt库。

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

Stack Overflow用户
提问于 2019-01-31 16:34:14
回答 1查看 1.6K关注 0票数 1

我试图使用Virtual中的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版本时,我得到以下输出:

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-01 00:21:26

我会试着分步骤解释这件事!

  1. 每一套完整的Qt库都称为Qt“分发版”。您可以从各种来源获得Qt发行版:
代码语言:javascript
运行
复制
- Installed from the package manager of your OS (.deb/.rpm). 
- From a downloaded zip file on [http://qt.io](http://qt.io/)
- As a cloned repo from git
- etc..

  1. 有些可用的Qt发行版是预先构建的,有些则需要从源代码中构建。在任何一种情况下,它们都将有一个特定于特定Qt发行版的qmake程序。该程序负责构建程序,以便它们链接到qmake所属的特定Qt发行版。qmake在使用QtCreator进行构建时也会使用。
  2. 如果您使用一个qmake构建了一个二进制文件,并且试图在另一台计算机上运行它,那么它可能在动态链接过程中找到错误的Qt库,并指出“不兼容的Qt版本”的错误。

这个问题有很多解决办法;

  1. 收集所有的Qt库(Qt在/home/myusername/Qt/5.version/gcc_64/lib/*.so)中,与您的程序可执行文件位于同一个文件夹中)。这将确保他们优先于任何其他版本的Qt,这可能在您的动态链接器的路径。
  2. 卸载操作系统提供的Qt版本。这可能是不可取的,特别是如果其他程序使用它们。
  3. 使用正确的qmake从源重新构建程序。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54465171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档