crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Qt+CodeBlocks
Fedcomp
  опции профиля:
сообщение 23.10.2010, 20:51
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 23.10.2010
Пользователь №: 2146

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет.
Хочу чтобы CodeBlocks на автомате (по клавише F9 т.е компиляция) проходился по полному циклу qmake и потом компиляция через mingw.
Но возникло много трудностей. Во первых я новичок, процессы компиляции понимаю крайне плохо (лишь знаю что в .o файлах компилируется код, затем линкером объединяется в экзешник, ну ещё что то слышал про makefile, но не знаю как они работают, и знаю что Qt использует moc для того чтобы добавить к C++ упрощенный вид функций (т.е препроцессор moc делает б0льшую работу за программиста, собственно превращая псевдо slots и signals в настоящий код понятный компилятору))
Во вторых не понятен способ ручной компиляции Qt проектов. В Qt designer сборка проходит абсолютно прозрачно, как и что он в это время делает не понятно.
Пробовал порыться в гугле, нашел qmake -project (рекурсивно проходится по текущему каталогу и составляет qt проект) и qmake "имя_проекта.pro" который проходится moc'ом как я понял.
Так вот такая задача, хочу чтобы CodeBlocks автоматически запускал qmake перед компиляцией, это возможно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Fedcomp
  опции профиля:
сообщение 24.10.2010, 13:16
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 23.10.2010
Пользователь №: 2146

Спасибо сказали: 0 раз(а)




Репутация:   0  


Дело сдвинулось, нашел ваш пост по этому поводу http://www.forum.crossplatform.ru/index.ph...post&p=8828
Действительно у меня стоял борландовский C++, убрал его из переменных сред подключился mingw (на самом деле не подключился, я скопировал mingw32-make.exe в файл с названием make.exe, теперь из командной строки запускается как и положено mingw)
Поидее теперь qmake должен работать нормально. Значит проблема не в этом.
Дело в том что я пытаюсь пробный проект скомпилить, сделал форму в Qt creator'е, и пытаюсь её подсоединить к проекту.
Есть
main.cpp
#include <QApplication>
#include <QDialog>

using namespace std;

#include "forms/mainform/mainfrm.h"

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    Ui::mainfrm ui;
    QDialog *dialog = new QDialog;
    ui.setupUi(dialog);

    dialog->show();

    return app.exec();
}

Есть
forms/mainform/mainfrm.h
#ifndef MAINFRM_H
#define MAINFRM_H

#include <QMainWindow>

namespace Ui {
    class mainfrm;
}

class mainfrm : public QMainWindow
{
    Q_OBJECT

public:
    explicit mainfrm(QWidget *parent = 0);
    ~mainfrm();

private:
    Ui::mainfrm *ui;
};

#endif // MAINFRM_H

Есть
forms/mainform/mainfrm.cpp
#include "mainfrm.h"
#include "ui_mainfrm.h"

mainfrm::mainfrm(QWidget *parent) : QMainWindow(parent),ui(new Ui::mainfrm)
{
    ui->setupUi(this);
}

mainfrm::~mainfrm()
{
    delete ui;
}


При компиляции получаю ошибку
main.cpp|12|error: aggregate 'Ui::mainfrm ui' has incomplete type and cannot be defined|

Кстати говоря #include "ui_mainfrm.h" не создается почему то ...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 0:54