2016-06-30 6 views
1

Я не могу скомпилировать простой проект Qt (пример с основным окном). Я попробовал это через командную оболочку, а также на QtCreator. сначала qmake должен создать make-файл с правилом команды uic, чтобы перевести так просто, как это должно было быть с ui на .h.Невозможно скомпилировать проект Qt в qtcreator

Qt Creator, отображающий следующие предупреждения/сообщения об ошибках на консоли.

09:06:30: Running steps for project untitled... 
09:06:30: Starting: "D:\QT\qt-everywhere-opensource-src-5.6.0\qtbase\bin\qmake.exe" C:\workspace_llb_27-05-2016\untitled\untitled.pro -r -spec win32-g++ 
09:06:32: The process "D:\QT\qt-everywhere-opensource-src-5.6.0\qtbase\bin\qmake.exe" exited normally. 
09:06:32: Starting: "C:\mingw\mingwx64_481r0-sjlj-rev2\bin\mingw32-make.exe" 
C:/mingw/mingwx64_481r0-sjlj-rev2/bin/mingw32-make -f Makefile.Debug 
mingw32-make[1]: Entering directory 'C:/build_untitled_Qt_5_6_0_Built_by_mingwx64_481r0_sjlj_rev2_Debug' 
/C/build_untitled_Qt_5_6_0_Built_by_mingwx64_481r0_sjlj_rev2_Debug/uic_wrapper.sh ../workspace_llb_27-05-2016/untitled/mainwindow.ui -o ui_mainwindow.h 
Makefile.Debug:318: recipe for target 'ui_mainwindow.h' failed 
process_begin: CreateProcess(NULL, /C/build_untitled_Qt_5_6_0_Built_by_mingwx64_481r0_sjlj_rev2_Debug/uic_wrapper.sh ../workspace_llb_27-05-2016/untitled/mainwindow.ui -o ui_mainwindow.h, ...) failed. 
make (e=2): Le fichier spécifié est introuvable. 

mingw32-make[1]: *** [ui_mainwindow.h] Error 2 
mingw32-make[1]: Leaving directory 'C:/build_untitled_Qt_5_6_0_Built_by_mingwx64_481r0_sjlj_rev2_Debug' 
Makefile:34: recipe for target 'debug' failed 
mingw32-make: *** [debug] Error 2 
09:06:33: The process "C:\mingw\mingwx64_481r0-sjlj-rev2\bin\mingw32-make.exe" exited with code 2. 
Error while building/deploying project untitled (kit: Qt 5.6.0 (Built by mingwx64_481r0-sjlj-rev2)) 
When executing step "Make" 

Благодаря

+0

По какой-то причине это выглядит как ui_mainwindow.h в нет, вероятно, uic_wrapper не смог его сгенерировать. Я предлагаю попробовать компилировать отдельно только mainwindow.ui и посмотреть, работает ли это. – Marco

+0

Спасибо за ваш ответ Марко. кажется, не работает. Я открываю командную строку, где у меня есть ui_wrapper.bat и мой mainwindow.ui, тогда я запускаю командную строку uic_wrapper.bat -o mainwindow.ui ui_mainwindow.h, но это не работает, и это должен быть make-файл, который вызывает uic.exe – Loki

ответ

0

Я заподозрив что-то не так с вашей Desktop Kit возможно. Я попытался создать новый проект по умолчанию mainwindow просто нравится, как вы сделали, и я вижу несколько первых шагов, как показано ниже:

14:48:15: Running steps for project untitled... 
14:48:15: Starting: "D:\Qt\Qt5.6.0\5.6\mingw49_32\bin\qmake.exe" C:\untitled\untitled.pro -r -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" 
14:48:16: The process "D:\Qt\Qt5.6.0\5.6\mingw49_32\bin\qmake.exe" exited normally. 
14:48:16: Starting: "D:\Qt\Qt5.6.0\Tools\mingw492_32\bin\mingw32-make.exe" 
D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/mingw32-make -f Makefile.Debug 

Вы можете заметить, что есть разница между qmake путем моего приложение использует по сравнению с вашим.

Mine looks like this: D:\Qt\Qt5.6.0\5.6\mingw49_32\bin\qmake.exe 
Yours looks like this: D:\QT\qt-everywhere-opensource-src-5.6.0\qtbase\bin\qmake.exe 

И я думаю qt-everywhere-opensource-src-5.6.0 похож на исходный код Qt, который вы могли бы вытащил из Интернета. Надеюсь, эта информация даст вам некоторый указатель, чтобы понять, что происходит не так.

+0

благодарит за вашу помощь. Я никогда не замечаю этого. Мой верный путь к инструментам Qt - это D: \ QT \ qt-везде-opensource-src-5.6.0 \ qtbase \ bin \ qmake.exe. и он корректно генерирует uic_wrapper.bat в моем каталоге сборки, но не в файле makefile.Debug. но когда я запускаю uic_wrapper.bat следующим образом: uic_wrapper.bat -o ui_mainwindow.h mainwindow.ui. Я могу получить outfile мой ui_mainwindow.h, а затем запустить мой проект. Я не знаю, где крут – Loki

+0

Я замечаю что-то в make-файле. Даже если я запустил qmake так: qmake.exe untitled.pro -r -spec win32-g ++ Я мог бы найти команду linux, такую ​​как rm -f или \ вместо/in makefile. что черт qmake использует команду linux при создании make-файла. – Loki

+0

Я все еще пытаюсь решить эту проблему. Я уверен, что это происходит из-за неправильной обстановки. Я меняю файл makefile.debug uic_wrapper.sh на .bat, но пока ничего не изменилось. Здесь моя консоль вывода в qtcreator. – Loki

3

В конечном итоге я нахожу решение. Если это случится со мной, это может случиться с кем угодно. На самом деле все работало до того, как я установил gitbash. Я задал переменную систему bin gitbash для моей системы путей. Однако gitbach содержит sh.exe, который использует unix-инструмент. Поэтому каждый раз, когда я создавал через Qtcreator или консоль 2, uic_wrapper был создан один .sh один .bat, и весь мой makefile был unix. в двух словах никогда не устанавливал UNIX TOOL YOU WINDOWS SYSTEM. Mingw может содержать MSYS заботиться! по крайней мере, большинство ориентированных на инструменты разработки - это UNIX.

+0

Ничего себе, он решил мою проблему. Я удалил sh.exe из пути и снова запустил Qmake, и теперь Makefile использует команды Windows вместо Unix (например, cp => copy, rm => remove и т. Д.). – fbonnet