Попытка статической компиляции приложения Qt с помощью команды mingw32-make, но получение ошибок с операторами #include

Я написал приложение текстового редактора, которое я хочу скомпилировать статически. Я следовал инструкциям, изложенным на эта страница.

Я пошел в каталог, где были все исходные файлы. Ран:

1. mingw32-make clean //no problems
2. qmake -config release //no problems
and finally
3. mingw32-make

, и именно здесь я получил список ошибок, вызванных операторами #include в моем коде. Например, если бы я написал #include <QMainWindow>, я бы получил ошибку

QMainWindow: такого файла или каталога нет.

Что я делаю неправильно?


person W.K.S    schedule 05.12.2011    source источник
comment
вы имеете в виду, я написал #include ‹QMainWindow.h›? Неа. Я пытался посмотреть, работает ли это таким образом, но не повезло.   -  person W.K.S    schedule 06.12.2011
comment
Что, вероятно, происходит, так это то, что qmake ссылается на каталог, в котором находятся заголовки Qt, тогда как с mingw32-make вам нужно было бы указать их явно   -  person Ken Wayne VanderLinde    schedule 06.12.2011
comment
Я считаю, что вам нужно запустить qmake, так как MOC необходим для классов, содержащих макрос Q_OBJECT, такой как QMainWindow. Двухфазная компиляция — один из немногих недостатков Qt.   -  person AJG85    schedule 06.12.2011
comment
Подождите, вы имеете в виду запустить qmake на шаге 2? Я сделал это - извините, я сделал ошибку, когда набирал свои шаги. Я отредактировал это сейчас.   -  person W.K.S    schedule 06.12.2011
comment
В этом случае он, вероятно, не может найти ваш каталог Qt. Правильно ли установлены ваши переменные среды?   -  person AJG85    schedule 06.12.2011
comment
Я не уверен. Есть ли способ проверить, верны они или нет?   -  person W.K.S    schedule 06.12.2011


Ответы (2)


В вашем .pro попробуйте эту строку: "QT += gui"

person Rodrigo    schedule 06.12.2011

В MSVC2010, используя qmake nmake, я решил это, заменив экземпляры

#include <QMainWindow>

с участием

#include <QtWidgets/QMainWindow>
person Guy Cook    schedule 30.04.2012