私は初心者なので、しばらくお待ちください。私は Ubuntu を使用しており、.run ファイルから Qt 5.1.0 をインストールしました。QtCreator 2.8 もインストールされました。これらの行を .bashrc ファイルに追加しました。
export QTDIR=/opt/Qt5.1.0/5.1.0/gcc
export QMAKESPEC=$QTDIR/mkspecs/linux-g++
export QT_PLUGIN_PATH=$QTDIR/plugins
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
簡単なサンプルアプリケーションをコンパイルしようとしました:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
「qmake -project」と「qmake hello.pro」を実行してから、「make」と入力しました。「hello.cpp:1:24: 致命的なエラー: QApplication: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。」</p>
問題はqmakeにあるようです。QtCreator でプロジェクトを作成すると、Makefile の INCPATH 変数が異なり、このフェーズは問題なく実行されます (他にも問題はありますが、別の問題です)。これは、QtCreator で作成された Makefile の INCPATH 変数です。
“INCPATH = -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../helloQtCreator -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -I.”
そして、これは端末を介してqmakeによって作成されます:
“INCPATH = -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I. -I. -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I.”
プロジェクト名は異なりますが、ターミナルから手動で起動したときに qmake に「-I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets」が含まれないのはなぜですか? この行を .pro ファイルに追加すると、問題が一時的に解決されます。
QT += widgets
しかし、毎回これを手動で行いたくありません。どうすれば修正できますか?
ありがとうございました。