Qtの例をコンパイルしたいと思います。エラーQtWidgetsが表示されます:そのようなファイルやディレクトリはありません#include
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - does not help
QT += widgets - does not help
INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/ - does not help
Qt 5.3。 Ubuntu 14.04 x64。
次のすべての手順を完了したことを再確認する必要があります。
インストールされているモジュール
greatThan(QT_MAJOR_VERSION、4):QT + =ウィジェット
Qt 5 qmakeを再実行します。
とは言っても、ウィジェット全体に関連するものがすべて含まれているため、モジュール全体を含めることはお勧めできません。本当に必要なヘッダーに絞り込んでください。
お気づきのとおり、Qt4とQt5の間でQtディレクトリ構造が変更されました。 QWidgetヘッダーがQtWidgetsディレクトリに移動しました。追加してみてください
INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/QtWidgets
それが役に立たない場合は、手動でヘッダーを見つけてみてください
find /opt/Qt/5.3/Src/qtbase/ -name QWidget
そして、それがINCLUDEPATHにあるディレクトリ
ファイナルコンテストのコメントに基づいて編集します。
回避策は通常悪い考えであることに同意します。 QTがどこでQT5ヘッダーとライブラリを探すかをテストするには、最小限のプロジェクトを作成します。
#include <QApplication>
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
w.show();
app.exec();
}
プロジェクトを生成し、QT + =ウィジェットを追加する
/opt/Qt/5.3/Src/qtbase/bin/qmake -project
プロジェクトファイル
######################################################################
# Automatically generated by qmake (3.0) Thu Jul 10 13:05:17 2014
######################################################################
TEMPLATE = app
TARGET = so_qtwidgets
INCLUDEPATH += .
QT += widgets
# Input
SOURCES += main.cpp
メイクファイルを生成する
/opt/Qt/5.3/Src/qtbase/bin/qmake
興味深いパーツウィジェットフラグが追加されます。
異なるはずの唯一の部分は、QtWidgetsとQtGuiへのパスです。これらが間違っている場合は、Qtを再インストールしてみます。
「make」を実行する前に、.proファイルがどのように見えるかを確認してください。コマンド「qmake -project」がこの同じエラーの原因となる.proファイルを自動生成したことがわかりました。次のコマンドを使用してqtプロジェクトをコンパイルすると、エラーが発生しなくなりました。
qmake my_project.pro
make
これはすべて間違った方法に非常によく似ており、5.6で一時的に同じ問題が発生しましたが、答えははるかに単純になる可能性があります。
多くの例をロードしている場合は、最初にエディタなどに到達する可能性があります。例が初めてロードされた場合は、プロジェクトのサイドタブの下にある「構成」する必要があります。これにより、「ビルドと実行」ではなく「構成」が表示されます。常にすぐにジャンプするとは限らないという欠点がありますが、デフォルトでサポートされていないサンプルが含まれています(Desktop OpenGLとiOS for two)。
それが完了するまで、使用されるライブラリは使用されるコンパイラ/ターゲット(例:MSVS、GNCCC、MinGW、32/64ビット)に依存するため、直接のプロジェクト以外の依存関係は解決されません。