Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT4] QDevelop и *.ui


Автор: qtnov 4.1.2008, 23:53
вот такая ошибка в новом проекте:

Erstellen (make)...
D:/Programme/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/Programme/QDevelop/bin/_MoiProekty/test'
mingw32-make[1]: Leaving directory `D:/Programme/QDevelop/bin/_MoiProekty/test'
mingw32-make[1]: *** No rule to make target `build\ui_mainwindow.h', needed by `bin\test.exe'.  Stop.
mingw32-make: *** [release] Error 2
---------------------- Erstellung abgeschlossen mit 1 Fehler(n) ----------------------


когда создаю новый проект создаются файлы:
test/ui/mainwindow.ui
test/src/mainwindowimpl.h
test/src/mainwindowimpl.cpp
test/src/main.cpp

вот код файла mainwindowimpl.h
Код

#ifndef MAINWINDOWIMPL_H
#define MAINWINDOWIMPL_H
//
#include <QMainWindow>
#include "ui_mainwindow.h"
//
class MainWindowImpl : public QMainWindow, public Ui::MainWindow
{
Q_OBJECT
public:
    MainWindowImpl( QWidget * parent = 0, Qt::WFlags f = 0 );
private slots:
};
#endif



я так понял из test/ui/mainwindow.ui должен получиться
Код

#include "ui_mainwindow.h"

потому что его нигде нету

ктонибудь знает как это профиксить??

Автор: bsa 5.1.2008, 00:31
qtnov, содержимое *.pro файла в студию. А еще для начала попробуй qmake запустить в директории проекта, а лучше просто изменить дату *.pro файла и собрать проект.

Автор: Любитель 5.1.2008, 00:32
Код *.pro файла покажи!


M
Любитель

Выделил из темы [Qt4]+Mingw+Qdevelop проблема компиляции

qtnov, в следующий раз для нового вопроса создавай отдельный топик!

Автор: qtnov 5.1.2008, 14:03
код *pro файла:

test/test.pro
Код

TEMPLATE = app
QT = gui core
CONFIG += qt release warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
FORMS = ui/mainwindow.ui
HEADERS = src/mainwindowimpl.h
SOURCES = src/mainwindowimpl.cpp src/main.cpp

Автор: JackYF 5.1.2008, 15:09
Цитата(qtnov @  5.1.2008,  13:03 Найти цитируемый пост)
UI_DIR = build

Цитата

UI_DIR = ui


попробуй. qmake сделать не забудь, если что.

Автор: Любитель 5.1.2008, 18:33
Цитата(JackYF @  5.1.2008,  15:09 Найти цитируемый пост)
UI_DIR = ui

Я бы предпочёл добавить build в список инклюд-директорий smile

Автор: JackYF 5.1.2008, 18:51
Цитата(Любитель @  5.1.2008,  17:33 Найти цитируемый пост)
Я бы предпочёл добавить build в список инклюд-директорий 

кстати, да smile

Автор: qtnov 5.1.2008, 19:05
порпобовал поменять параметры UI_DIR и добавил INCLUDEPATH=build (не знаю правильно или нет) таким образом:

вариант 1
Код

TEMPLATE = app
QT = gui core
CONFIG += qt release warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = ui
FORMS = ui/mainwindow.ui
HEADERS = src/mainwindowimpl.h
SOURCES = src/mainwindowimpl.cpp src/main.cpp

вариант 2
Код

TEMPLATE = app
QT = gui core
CONFIG += qt release warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = ui
FORMS = ui/mainwindow.ui
HEADERS = src/mainwindowimpl.h
SOURCES = src/mainwindowimpl.cpp src/main.cpp
INCLUDEPATH = build

вариант 3
Код

TEMPLATE = app
QT = gui core
CONFIG += qt release warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
FORMS = ui/mainwindow.ui
HEADERS = src/mainwindowimpl.h
SOURCES = src/mainwindowimpl.cpp src/main.cpp
INCLUDEPATH = build


пишет тоже самое я так понял в зависимости от параметра UI_DIR = ui/UI_DIR = build, либо:

Erstellen (make)...
D:/Programme/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/Programme/QDevelop/bin/_MoiProekty/test'
mingw32-make[1]: Leaving directory `D:/Programme/QDevelop/bin/_MoiProekty/test'
mingw32-make[1]: *** No rule to make target `ui\ui_mainwindow.h', needed by `bin\test.exe'.  Stop.
mingw32-make: *** [release] Error 2
---------------------- Erstellung abgeschlossen mit 1 Fehler(n) ----------------------


либо:

Erstellen (make)...
D:/Programme/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/Programme/QDevelop/bin/_MoiProekty/test'
mingw32-make[1]: Leaving directory `D:/Programme/QDevelop/bin/_MoiProekty/test'
mingw32-make[1]: *** No rule to make target `build\ui_mainwindow.h', needed by `bin\test.exe'.  Stop.
mingw32-make: *** [release] Error 2
---------------------- Erstellung abgeschlossen mit 1 Fehler(n) ----------------------


qmake во всех случаях делается без ошибки:

Projekt aktualisieren (qmake test.pro)...
---------------------- Erstellung ohne Fehler abgeschlossen----------------------

Автор: qtnov 6.1.2008, 15:43
1.
Цитата(bsa @ 5.1.2008,  00:31)
qtnov, ... А еще для начала попробуй qmake запустить в директории проекта, а лучше просто изменить дату *.pro файла и собрать проект.

а как её изменить?
и что занчит запустить в директории проекта?
я вот это сделал :
Код

D:\Programme\Qt\4.3.3\bin>qmake D:\Programme\QDevelop\bin\_MoiProekty\test\test.pro

и, продварительно скопировав qmake.exe в D:\Programme\QDevelop\bin\_MoiProekty\test\
Код

D:\Programme\QDevelop\bin\_MoiProekty\test>qmake test.pro

но дополнительного хедера не появилось

2. в Qt/4.3.3/bin/ есть утилита uic.exe и uic3.exe может она не выполняется по каким то причинам, вроде она перегоняет *.ui в *.h или *.cpp
как её вручную запустить?

Автор: BabySG 29.1.2008, 17:28
Выполни строку, наподобие такой:

Код

C:\Qt\4.3.3\bin\uic.exe mainwindow.ui > ui_mainwindow.h


И появится этот файл. Сам задолбался разбираться...

Автор: GePo 2.2.2008, 22:52
добавь в CONFIG параметр uic.
это такое тайное знание, которого в документации почему-то нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)