Всем привет.
Хочу чтобы CodeBlocks на автомате (по клавише F9 т.е компиляция) проходился по полному циклу qmake и потом компиляция через mingw.
Но возникло много трудностей. Во первых я новичок, процессы компиляции понимаю крайне плохо (лишь знаю что в .o файлах компилируется код, затем линкером объединяется в экзешник, ну ещё что то слышал про makefile, но не знаю как они работают, и знаю что Qt использует moc для того чтобы добавить к C++ упрощенный вид функций (т.е препроцессор moc делает б0льшую работу за программиста, собственно превращая псевдо slots и signals в настоящий код понятный компилятору))
Во вторых не понятен способ ручной компиляции Qt проектов. В Qt designer сборка проходит абсолютно прозрачно, как и что он в это время делает не понятно.
Пробовал порыться в гугле, нашел qmake -project (рекурсивно проходится по текущему каталогу и составляет qt проект) и qmake "имя_проекта.pro" который проходится moc'ом как я понял.
Так вот такая задача, хочу чтобы CodeBlocks автоматически запускал qmake перед компиляцией, это возможно?
Когда я пару лет назад работал в Code::Blocks, то для работы с Qt я использовал плагин http://code.google.com/p/qtworkbench/. Впрочем он был не совсем удобен, и насколько я могу судить он не очень активно развивается. После выхода первой версии Qt Сreator я перешел на него и не жалею. Рекомендую на него посмотреть
Т.е достаточно сделать Makefile с помощью QT и заставить кодеблоки юзать этот мейкфайл?
и при этом qmake при необходимости будет запускаться сам, я правильно все понял?
Делаю так,
cmd.exe=>
D:\non_users\projecT\GSC\develope\server_configurator>qmake -project
D:\non_users\projecT\GSC\develope\server_configurator>qmake "server_configurator
.pro"
WARNING: d:\non_users\projecT\GSC\develope\server_configurator\server_configurat
or.pro:7: Unescaped backslashes are deprecated.
WARNING: d:\non_users\projecT\GSC\develope\server_configurator\server_configurat
or.pro:7: Unescaped backslashes are deprecated.
WARNING: d:\non_users\projecT\GSC\develope\server_configurator\server_configurat
or.pro:7: Unescaped backslashes are deprecated.
D:\non_users\projecT\GSC\develope\server_configurator>
-------------- Build: Debug in srvconfig ---------------
Using makefile: Makefile
MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp.
Fatal: 'FORCE' does not exist - don't know how to make it
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
debug: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_default: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug first
debug-all: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug all
Дело сдвинулось, нашел ваш пост по этому поводу http://www.forum.crossplatform.ru/index.php?showtopic=1296&view=findpost&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();
}
#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
#include "mainfrm.h"
#include "ui_mainfrm.h"
mainfrm::mainfrm(QWidget *parent) : QMainWindow(parent),ui(new Ui::mainfrm)
{
ui->setupUi(this);
}
mainfrm::~mainfrm()
{
delete ui;
}
Прочитай http://doc.crossplatform.ru/qt/4.6.x/designer-using-a-ui-file.html, проверь pro-файл
Можно пример самого простого приложения на Qt? и хотелось бы узнать как компилировать вручную этот проект.
Простейший пример.
hello.cpp:
#include <QtGui>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QLabel lbl("Hello, World !");
lbl.show();
return app.exec();
}
TEMPLATE = app
SOURCES = hello.cpp
win32:TARGET = ../Hello
В консоли скомпилился ...
можно ли какой либо простой пример, чтобы проверить отрабатывается ли qmake при компиле?
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)