私は Qt を初めて使用し、プログラミングを開始するために最新バージョンの Linux (mint Ubuntu 13.04) をインストールしました。まず、github BuildScript を使用して Qt4 をインストールしました (これにより、QtCreater、QtDesigner、QtAssistant、および QtLinguist もインストールされます)。Python の GUI プログラミングも少し行う予定なので、PySide もインストールしました。私は意識的に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.
これは明らかに、qmake によって指定されたライブラリで gcc が 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 をインストールしたにもかかわらず、qmake は qt 5.0.1 を想定しています。私の qt5 ライブラリ ディレクトリ階層では、「QApplications」は QtGui ではなく /usr/include/qt5/QtWidgets にあります。ただし、qmake は QtWidgets/ をインクルード ライブラリに追加しません。
何が起こったのかわかりません... 1 つのシステムで同時に qt4 と qt5 を使用することはできませんか? ... 私の qt5/qt5 インストールは破損しているように見えますか? ... qmake で Qt4 を使用するにはどうすればよいですか? どんな提案でも大歓迎です。