带有qt4和qt5的Linux 13.04 - 失败

时间:2013-06-27 15:20:21

标签: qt qmake

我是Qt的新手,刚刚安装了最新版本的Linux(薄荷Ubuntu 13.04)来开始编程。首先,我使用github BuildScript安装了Qt4(这也安装了QtCreater,QtDesigner,QtAssistant和QtLinguist)。我也安装了PySide,因为我打算做一些Python gui编程。我没有有意识地安装qt5,但它出现在我所做的某一点。

QT教程中的以下程序说明了我的问题:

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    delete label;
    return app.exec();
}

现在正在运行:

..] $ qmake -project
..] $ qmake
..] $ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB
    -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++-64 -I. -I.
    -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I.
    -o helloWorld.o helloWorld.cpp helloWorld.cpp:1:24:
fatal error: QApplication: No such file or directory compilation terminated.

这显然意味着gcc没有在qmake指定的库中找到QApplications。调查这个:

..] $ sudo find / -name QApplication*  
/usr/include/qt4/QtGui/QApplication
/usr/include/qt5/QtWidgets/QApplication
/home/drk/Canopy/appdata/canopy-1.0.1.1189.rh5-x86_64/include/QtGui/QApplication

查看make文件,提供的库是(从编译器行可以看到):

INCPATH = -I/usr/share/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qt5
          -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I.

最后,看看qmake:

..] $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu

正如你所看到的,qmake正在假设qt 5.0.1,尽管我安装了Qt4并且在我的qt5库目录层次结构中“QApplications”位于/ usr / include / qt5 / QtWidgets而不是QtGui。但是,qmake不会将QtWidgets /添加到我的包含库中。

我不明白发生了什么......可以同时在一个系统上没有qt4和qt5吗?...我的qt5 / qt5安装是否显示已损坏?...我如何获得qmake到用Qt4?任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您可以在同一系统上同时使用Qt 4和5。然而,它们之间几乎没有什么区别,而你正在击中其中之一。在Qt 5中,小部件现在位于自己的模块中,因此您需要添加

QT += widgets

到您的.pro文件,然后重新运行qmake

(在你说屏幕上没有看到任何内容之前:不要删除标签!)

答案 1 :(得分:1)

看看是否有“qmake4”,“qt4-qmake”或“qmake-qt4”命令,而不仅仅是“qmake”。

另外,为什么要在外部安装Qt4? Ubuntu在其存储库中提供它。只需使用Ubuntu的软件包管理器安装它。这样您就可以确定它将被正确安装。 Qt Creator也可以在回购中使用。