将 Windows 编译的 QT 应用程序移植到 Linux?

Posted

技术标签:

【中文标题】将 Windows 编译的 QT 应用程序移植到 Linux?【英文标题】:Porting a Windows compiled QT application to Linux? 【发布时间】:2015-12-22 22:46:47 【问题描述】:

我在 Qt4 中创建了这个简单的应用程序,并希望在 RH Linux 发行版上对其进行测试。该发行版同时安装了 QtCore "Qt4" 和 Qt3。我无法添加或删除这些 Qt 版本中的任何一个,但希望使用可用的版本。

我在 Linux 中编译基于 Windows 的 Qt 程序“Qt4”时出错。 第一个问题: - 如何在没有安装 QT 创建者“仅 Qt 库”的情况下在 Linux 中编译我的编译,我所做的是从 Windows 获取 .pro 文件并输入 qmake 。 ,错误是:

WARNING : Found potential symbol conflict of mainwindow.cpp (mainwwindow.cpp) in SOURCES
WARNING : Found potential symbol conflict of mainwindow.h (mainwwindow.cpp) in HEADERS
WARNING : Found potential symbol conflict of dialog.cpp (dialog.cpp) in SOURCES
WARNING : Found potential symbol conflict of dialog.h (dialog.h) in HEADERS

如何修改 qmake 以指定 Qt 的版本 谢谢。

下面是我的 .pro 文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = TestTool
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    dialog.cpp

HEADERS  += mainwindow.h \
    dialog.h

FORMS    += mainwindow.ui \
    dialog.ui

编译错误是:

【问题讨论】:

一个不在.pro文件中指定Qt版本,直接调用正确的qmake即可。警告很奇怪,但它们是警告,而不是错误,所以请检查是否编译。 @FrankOsterfeld 我在上面编译时添加了错误。它只是不喜欢 QApplication,这意味着它使用的是 qt3 而不是 qt4 【参考方案1】:

尝试显式使用 Qt4 版本的 qmake:

/usr/lib64/qt4/bin/qmake -o Makefile TestTool.pro

【讨论】:

现在错误是主窗口,它说它没有在这个范围内声明......一切都包括在内,不知道为什么抱怨主窗口 @SamGomari 可能值得发布关于下一个问题的第二个问题。

以上是关于将 Windows 编译的 QT 应用程序移植到 Linux?的主要内容,如果未能解决你的问题,请参考以下文章

如何将Linux下的QT程序移植到arm板上

qt 移植到开发板

如何将用QT做好的播放器移植到ARM开发板上

QT·移植Qt到ARM平台及搭建Qt交叉编译环境

为啥在Windows下开发 QT 要用到 MinGW? 他的作用是啥?

将 Qwt 库移植到 playbook