Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Qt 4.4.0 + MinGW + NetBeans 6.1, Qt 4.4.0 + MinGW + NetBeans 6.1 
V
    Опции темы
Acer
Дата 17.6.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Хочу рассказать, как скомпилить программу с помощью Qt под вендой.
Я пользуюсь NetBeans IDE 6.1 по этому расскажу, как компилить Qt с помощью этой IDE. 
Устанавливаем MinGW в директорию C:\MinGW.
Устанавливаем MSys (у меня версия 1.0 по этому путь C:\msys\1.0 ) куда просит инсталятор.
Устанавливаем Qt в директорию по умолчанию ( C:\Qt\4.4.0 )
Прописываем в переменные окружения(PATH) пути C:\MinGW\bin; C:\Qt\4.4.0\bin
Перегружаем комп.
Заменяем C:\MinGW\bin\mingw32-make.exe на C:\msys\1.0\bin\make.exe (для того, чтобы компилился C++)
В настройках IDE( Tools -> Options -> C/C++ -> Build Tools ) указываем компоненты из C:\MinGW\bin. Она сама найдет компиляторы, которые ей надо.
Создаем новый проект C/C++ Aplication. В свойствах проекта во вкладке Build -> C++ Compiler в Include Directories указываем путь C:\Qt\4.4.0\include
Пишем минимальное приложение с использованием Qt:
Код

#include <Qt/qapplication.h>
#include <Qt/qlabel.h>

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

    QLabel *lb = new QLabel( "Hello Qt in win32" );
    lb->show();

    return app.exec();
}


Через консоль заходим в директорию с нашим проектом. Например D:\CppProjects\test
затем выполняем команды
Код

D:\CppProjects\test>qmake -project
D:\CppProjects\test>qmake

Открываем IDE, открываем файл Makefile и заменяем строку
Код

QMAKE = c:\Qt\4.4.0\bin\qmake.exe

на эту
Код

QMAKE = c:/Qt/4.4.0/bin/qmake.exe

жмем Build Main Project( F11 )
Qt скомпилированно smile
потом заходим в D:\CppProjects\test\release и запускаем test.exe
Если будут проблемы с путями, то есть, например, компилятор будет ругаться на что-то типа
Код

cannot find file srcmain.cpp

если сорцы лежат в директории src то нужно в файле Makefile.Release так же изменить пути с вендовых на никсовые. то есть изменить "\" на "/".
Еще один нюанс. При добавлении/удалении файлов необходимо выполнять команды
Код

#>qmake -project
#>qmake


Это сообщение отредактировал(а) Acer - 20.6.2008, 09:54
PM MAIL   Вверх
bsa
Дата 17.6.2008, 23:34 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Acer, начнем с того, а зачем собственно компилировать QT по виндой, да еще и из-под NetBeans?
А потом, ты документацию на QT не читал вообще? Там же черным по белому написано подключать заголовочные файлы без указания расширения:
Код
#include <QApplication>
#include <QtGui> //содержи уже все QLabel, QPushButton и пр.
//поотдельности <QLabel> и пр. надо подключать только в заголовочных файлах.

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

    QLabel *lb = new QLabel( "Hello Qt in win32" );
    lb->show();

    return app.exec();
}

http://doc.trolltech.com/4.4/mainwindows-application.html
PM   Вверх
Acer
Дата 18.6.2008, 01:08 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Цитата(bsa @ 17.6.2008,  23:34)
Acer, начнем с того, а зачем собственно компилировать QT по виндой, да еще и из-под NetBeans?
А потом, ты документацию на QT не читал вообще? Там же черным по белому написано подключать заголовочные файлы без указания расширения:
Код
#include <QApplication>
#include <QtGui> //содержи уже все QLabel, QPushButton и пр.
//поотдельности <QLabel> и пр. надо подключать только в заголовочных файлах.

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

    QLabel *lb = new QLabel( "Hello Qt in win32" );
    lb->show();

    return app.exec();
}

http://doc.trolltech.com/4.4/mainwindows-application.html

Давай начнем вот с этого:
1. Каждый пишет в той среде, в которой ему удобно
2. Каждый компилит под той платформой, под которой нужно выполнять задачи
3. Зачем мне импортировать все библиотеки, если нужно использовать только 2?
4. Каждый подключает то, что ему надо и там, где ему надо.
PM MAIL   Вверх
bsa
Дата 18.6.2008, 12:58 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(Acer @ 18.6.2008,  01:08)
Давай начнем вот с этого:
1. Каждый пишет в той среде, в которой ему удобно
2. Каждый компилит под той платформой, под которой нужно выполнять задачи
3. Зачем мне импортировать все библиотеки, если нужно использовать только 2?
4. Каждый подключает то, что ему надо и там, где ему надо.

С п.п. 1 и 2 я не спорю. Вот только не могу понять, зачем тебе компилировать QT (это такая библиотека, если ты не знал, а не программа ее использующая) да еще и из-под NetBeans? Ведь вся компиляция осуществляется из командной строки, зачем геморроиться со средой разработки, когда собрать нужно только один раз (ты же не собираешься переписывать QT?)
3. Про precompiled headers слышал? Если бы слышал, то не спрашивал бы, так как на скорость сборки подключение QtGui уже не влияет, а количество мороки заметно сокращает.
4. "Каждый ходит там где хочет, а не там где предписано. А когда на голову падает кирпич, возмущается." Делать надо так, как написано в документации. Если завтра поменяют расширение с h на hpp или hxx, то только у таких как ты программа не будет собираться. Так как никто не обещал, что подобный способ подключения заголовочных файлов будет работать.
PM   Вверх
JackYF
Дата 18.6.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(bsa @  18.6.2008,  11:58 Найти цитируемый пост)
3. Про precompiled headers слышал? Если бы слышал, то не спрашивал бы, так как на скорость сборки подключение QtGui уже не влияет, а количество мороки заметно сокращает.

Тут я не очень соглашусь. Лично мне абсолютно не хочется включать ненужное, я 
Код

#include <QtGui>

не юзаю, это сродни 
Код

using namespace std;

Имхо, конечно.

Насчёт всего остального полностью согласен.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bsa
Дата 18.6.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



JackYF, с QtGui я и не настаивал.  smile 
PM   Вверх
Acer
Дата 18.6.2008, 19:24 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8




 ! 
JackYF
Выяснение личных отношений - в личке.

Признавать свои ошибки тоже неплохо уметь, не боги горшки обжигают, и ошибаться могут все.

bsa, извини

Это сообщение отредактировал(а) Acer - 20.6.2008, 08:22
PM MAIL   Вверх
Acer
Дата 20.6.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Понял свою ошибку. В следующий раз буду внимательней.
PM MAIL   Вверх
unicuum
Дата 25.6.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка

Репутация: нет
Всего: 8




Модератор: Сообщение скрыто.



--------------------
user posted image
обычный день на винграде
PM   Вверх
Acer
Дата 28.6.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Вобщем проблема была с путями.. То есть компилятор ругался, шо не может найти путь типа
Цитата
C:Qt4.4.0binqmake.exe

Я написал небольшое приложение, которое все исправляет. То есть:
Создаем проект в нетбинсе, пишем там код с юзанием Qt, потом копируем прогу( прикреплена к сообщению ) в директорию с проектом, запускаем. И потом уже компилим в нетбинсе бинарник...
При добавлении/удалении файлов из проекта необходимо повторно запускать мою программульку.

Это сообщение отредактировал(а) Acer - 5.7.2008, 18:08

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  makerpl.exe.gz 155,44 Kb
PM MAIL   Вверх
Mabramyan
Дата 20.2.2013, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 3.7.2007
Где: Алматы

Репутация: нет
Всего: нет



Можно просто поменять настройки конфига. А именно изменить файл QT\mkspecs\win32-g++\qmake.conf
Где QT - это дирректория с QT
Поменять:

QMAKE_MOC=...
QMAKE_UIC=...
QMAKE_IDC=...

на

QMAKE_MOC        = QT/bin/moc.exe
QMAKE_UIC        = QT/bin/uic.exe
QMAKE_IDC        = QT/bin/idc.exe
PM MAIL WWW   Вверх
dix75
Дата 23.2.2013, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Acer
Максимальная версия Netbeans которая поддерживает Qt это 6.9.1
Все последующии версии при сборке вылетают с ошибками, постил ошибки в багтрекер NetBeans все без результатно.
Поэтому все-таки пересел на QtCreator.
[/code]

Это сообщение отредактировал(а) dix75 - 23.2.2013, 01:04


--------------------
save your mind
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.