我是 Qt 新手,刚刚安装了最新版本的 Linux(mint 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?任何建议将不胜感激。