2016-07-24 8 views
1

私は同様の問題についてオンラインで尋ねられた質問がいくつかあることを知っていますが、残念なことに、タイトルの示唆しているように、この比較的単純なものを解決できませんでした。qmakeはUICを呼び出さない

私は、最小限のQtのプロジェクトを設定する問題が発生します。

├── main.cpp 
├── mainwindow.ui 
└── qt.pro 

main.cppに:

#include <QtWidgets/QtWidgets> 
#include "ui_mainwindow.h" 

int main() { 
    return 0; 
} 

qt.pro:

TEMPLATE = app 
TARGET = qt-qmake-uic-problem 
INCLUDEPATH += . 

# Input 
FORMS += mainwindow.ui 
SOURCES += main.cpp 

ファイルメインウィンドウ。 uiはQt Creatorが提供するデフォルトのMainWindow Formです。

[[email protected] qt-qmake-uic-problem]$ make 
g++ -c -pipe -O2 -march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o main.o main.cpp 
main.cpp:2:28: fatal error: ui_mainwindow.ui: No such file or directory 
#include "ui_mainwindow.h" 
          ^
compilation terminated. 
make: *** [Makefile:298: main.o] Error 1 

が私の最高の知見によればui_mainwindow.hはqmakeのか、またはいずれか生成する必要があります:私はmakeが実行されますときにメイクファイルは、このエラーの原因となって作成され

qmake qt.pro 

実行すると今

Makefileによって - 私は手動で手動で起動しません。私はmocにも同様のことが起こり、私の研究を行っていることに注意する必要があります。qmakeのこのインストールが壊れていると奇妙に思えますが、ドキュメンテーションや似たような問題では説明できませんでした。デフォルトのリポジトリからQt SDKを入手しました。

アドバイスをいただきありがとうございます。

あなたはQMainWindowまたは他のQTウィジェットリンケUIエレメントを使用する場合は、あなたのプロジェクトの設定で、一般的にウィジェットを有効にする必要があります:

QT += widgets 

このあなたはQT-5を使用していると仮定すると、

+0

'代わりにui_mainwindow.ui' – wasthishelpful

+0

'のmainwindow.ui'を含めるようにしてくださいは、あなたの迅速な応答をありがとう!残念ながら、それは動作しませんでしたし、結果は同じです。ファイルが生成されず、g ++は「そのようなファイルやディレクトリはありません」というエラーを投げました。 –

+1

@それが役に立った、それは* 'ui_mainwindow.h' *です。 'mainwindow.ui'のxmlファイルを' main.cpp'のcppファイルにインクルードするのは非理性的です – Mike

答えて

1

あなたの例でmainwindow.uiのようなFORMSコンテンツの処理を有効にし、コードが正しいライブラリにリンクされるようにします。

も参照してくださいここ:http://doc.qt.io/qt-5/qtwidgets-index.html

+0

ありがとうございます! Qt + =の代わりに別のプロジェクトでQt + =を書きました。問題が解決しました :) –

関連する問題