我是新來的Qt和剛剛安裝了最新版本的Linux(Ubuntu的薄荷13.04),開始我的編程。首先我已經使用github上BuildScript(這也安裝QtCreater,QtDesigner,QtAssistant和QtLinguist)安裝的Qt4。我還安裝了PySide,因爲我打算做一個Python gui編程。我不自覺地安裝QT5,但它的出現,沿着我做了一些線點。的Linux 13.04與QT4和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
所以,你可以看到,儘管事實上我安裝了Qt4,並且在我的qt5庫目錄層次結構「QApplications」位於/ usr/include/qt5/QtWidgets而不是QtGui中,但qmake仍在假設qt 5.0.1。但是,qmake不會將QtWidgets /添加到我的包含庫中。
我不明白髮生了什麼......一個系統可以同時沒有qt4和qt5嗎?...我的qt5/qt5安裝是否出現損壞?...我如何獲得qmake使用Qt4?任何建議將不勝感激。
是否有任何特定的原因,你創建和刪除QLabel甚至沒有到達事件循環? – dtech
是的,愚蠢! ...感謝您搶佔我的錯誤! – dmon