我正在尝试使用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),但仍然遇到库不兼容的问题,对于这一切我很陌生,如果这很抱歉,愚蠢的问题。如果有人能告诉我该如何使用兼容的库,那就太好了,谢谢。
答案 0 :(得分:1)
我将尝试逐步解释这一点!
每套完整的Qt库称为Qt“发行版”。您可以从多种来源获得Qt分布:
一些可用的Qt发行版将是预先构建的,有些则需要从源代码构建。无论哪种情况,它们都将具有特定于该特定Qt分布的qmake
程序。该程序负责构建程序,以便它们链接到qmake
所属的特定Qt发行版。与qmake
一起构建时,也使用QtCreator
。
如果您使用一个qmake
构建了二进制文件,并尝试在另一台计算机上运行它,则在动态链接期间它可能会找到错误的Qt库,并吐出“ Qt版本不兼容”的错误。
有很多解决此问题的方法;
qmake
从源代码重建程序。