Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] и любимая IDE |
Автор: Kipter 20.2.2008, 08:13 |
Т.к собираюсь в ближайшее время писать проект на Qt4 и наслышан о проблемах компиляции с данной библиотекой на оч многих популярных IDE у меня возник вопросы: - В связи с чем Qt4 не компилируется спокойно например на томже VC++6? Этоже библиотека так еще и в исходных кодах, в чем сложность? Какието особенные макросы? - Хорошо допустим у меня есть Qt4 скомпилированная, а что касается моего проекта? могу ли я его собрать вместе с Qt4 на VC++6 или мне придется и проект писать на томже предлагаемом Trolltech компиляторе для винды? - чем отличается версия Qt4 с лицензией на комерческую деятельность от GPL версии технически? |
Автор: devmstr 20.2.2008, 18:47 |
Проблем действительно нет, все достаточно тривиально, если возникла конкретная проблема, запостите, постараемся помочь. А так все очень просто. P.S. Как бесплатная и мощная альтернатива студии - тот же Eclipse с соответствующим плагином, это если стоит вопрос о лицензионности, ведь MS тоже денег достаточно больших стоит. А так - получаем отличную функциональность(правда чуток вначале не привычно), без проблем с лицензией. |
Автор: JackYF 11.3.2008, 21:54 | ||
Потому как эта версия студии очень плохо поддерживает стандарт С++ в виду своей старости. |
Автор: SABROG 11.3.2008, 21:58 | ||||
И как следствие кроссплатформенный проект перестанет быть кроссплатформенным из-за того, что gcc не сможет никсах ничего скомпилить... |
Автор: nickless 11.3.2008, 22:09 | ||
"Кроссплаттформенный" не значит "компилируется на древн любом компиляторе" ![]() |
Автор: Denjs 11.3.2008, 22:35 | ||||||||
гы... отвечу в заголовок топика: а я пишу без IDE ))) ![]() редактора kate вполне хватает... отладка?
в kate не хватает только дерева свойств и методов класса,... может интерактивной помощи и подсказок по методам qt-классов.. а в остальном IDE имхо и не сильно нужен. по крайней мере в не-сильно больших проектах... компиляция? - с помщью батничка в консоли. Для удобства можно вывод через
под винду собираю с mingw возможно не сильно гут, но пока не занимался глубоко этим вопросом.. работает и ладно...
а что значит "предлагаемом Trolltech компиляторе для винды"? вы про mingw? ------------------------------------------- как происходит сборка проекта QT : сначала ваши исходники пропускаются через мета компилятор котторый генерирует "нормальный" C++ код. ( Ибо никаких сигналов и слотов в С++ нет. Хорошо так делать или нет - можно спросить у "троллтеч". но это работает. ) а потом уже проект "собирается" make-ом. под линукс, если сделать совсем тупо и в лоб это может выглядеть так:
Платная версия QT с интеграцией с VC как я понимаю просто меняет qmake и генерит код который будет нормально восприниматься майкрософтовским компилятором. Менять что-либо в ваших QT-исходниках как я понимаю не требуется. по крайней мере "у меня моё" так нормально собирается и в линуксе и в винде. Я конечно не могу советовать, ибо не разобрался до конца в вопросе IDE+QT, но подозреваю что файл-описание-проекта которые генерируют IDE требуют самой IDE для сборки... вы уверенны что там где вы будете собирать программу будет установлена такая-же ide ? а .pro сгенерированный через qmake -project ничего окромя самого qmake не требует... и нормально воспринимается и в винде и в линукс. в данном вопросе - прошу бить не сильно а помочь ) кстати если ткнете в ман как связять Eclipse и QT - буду признателен... у меня не вышло... ![]() |
Автор: SABROG 11.3.2008, 23:10 |
Мне нравится та среда, которую я под себя заточил: mingw + gdb + qt + eclipse + cdt + qt eclipse integration + subclipse. Прям не нарадуюсь, на днях освоил отладку с gdb, прямо указывает на место в исходниках где прога вылетает, а при наведении мышкой на любую переменную показывает ее содержимое в данный момент и т.п. Освоил gprof, теперь изучаю узкие места в программе, которые долго выполняются. Индексация дала возможность получать список параметров для функций на лету и смотреть в каких местах было определение класса и как оно выглядит, при желании моментальный "телепорт в это место", а вкладка Tasks отображает все места в исходниках где я писал "//TODO: не забыть проверить что-то, добавить то-то", и теперь я точно не забуду реализовать идеи, которые собирался (можно юзать edit->Add Task). Могу выбрать любой стиль программирования K&R, BSD и т.п. и отформатировать этим стилем весь исходник не заботясь о том, что где-то мог забыть о стиле. Если забыл название длинного параметра, класса, переменной, функции, то можно ввести часть имени и нажать Alt+/ и оно допишется само. Окно Outline позволит перемещаться по методам класса без прокрутки ползунка окна исходника, что экономит время на поиске нужного метода. А фишка Compare With -> Local History покажет все сделанные изменения исходника и позволит сделать откат на нужную дату или время (типа встроенного svn'a). Зная о всех этих возможностях и о том, что еще предстоит узнать отказываться о такой бесплатной кроссплатформенной конфетки не хочется. |
Автор: Denjs 11.3.2008, 23:44 |
немного оффтопа - ) вот именно qt + eclipse + ... + qt eclipse integration и интересует... откуда начать рыть? не толкнёте? в свое время не вышло у меня с этим, а потом не до этого было... |
Автор: SABROG 12.3.2008, 01:11 | ||||
Толкнем: MinGW 5.1.3 - http://superb-east.dl.sourceforge.net/sourceforge/mingw/MinGW-5.1.3.exe gdb - http://downloads.sourceforge.net/mingw/gdb-6.7.50.20071127-mingw.tar.bz2 Qt 4.3.4 - ftp://ftp.trolltech.com/qt/source/qt-win-opensource-4.3.4-mingw.exe (исходники, я всегда собираю сам через mingw, после компиляции папочка с Qt может весить 6 гигабайт) Eclipse (с CDT)- http://eclipse.a3-system.be/technology/epp/downloads/release/europa/winter/eclipse-cpp-europa-winter-win32.zip Qt Eclipse Integration - http://trolltech.com/developer/download/qt-eclipse-integration-win32-1.0.1.exe Subclipse 1.2.4 - http://subclipse.tigris.org/files/documents/906/39522/site-1.2.4.zip Иногда eclipse может сказать что ему памяти не хватает, при индексации, решается редактированием файла eclipse.ini, увеличиванием порога максимально отводимой памяти. Когда все установишь попытайся пройти Cheat Sheet, который появится при запуске eclipse после установки интегратора. По началу трудно разобраться с workspace и working sets. И в том где хранит eclipse файлы проектов. По сути нет никаких файлов проектов, есть только файлы на винчестере. Есть разве что окружение и некоторые параметры для проекта (файлы .cproject, .project и папка .settings). Чтобы работал отладчик надо правильно прописать пути. Вообще, чтобы поменьше косяков с путями было я создал себе батник для запуска eclipse:
Пути прописать по вкусу... |
Автор: Denjs 12.3.2008, 03:55 |
вух) спасибо.. буду искать толстый инет... а потом разбираться как это все повторить под линухом ))) |
Автор: just_geek 12.3.2008, 09:09 | ||
Ну я использую Visual Studio 2008 Express Edition + QT 4.3.4 никаких проблем ![]() ![]() А то mingw раздражает жутко: тормоз, генерирует большие бинарники, плюс куча проблем с winapi. Вообщем в топку пока, дождусь когда gcc 4.x портируют, может чего и изменится к тому времени. |
Автор: SABROG 12.3.2008, 09:23 |
Ради интереса, сколько у тебя весит файл \examples\widgets\calculator\release ? У меня 60kb, собран mingw. Насчет портирования новых версий gcc, давно уже есть интузиасты, которые выкладывают целые сетапы с mingw, где стоит последняя сборка gcc. Надо только отметить то, что этот новый gcc может не скомпилить исходники. Сам лично ставил и пытался собрать что-то, не вышло. Насчет тормознутости, программы скомпиленные через mingw работают в среднем на 3-4% медленней программ msvc, а в некоторых ситуациях и быстрее. Правда я замерял по статическому fps в трехмерной игрухе, которую собирал различными компиляторами. А в чем сложности с API ? Косяки у меня были только если хидеры устаревшие. |
Автор: just_geek 12.3.2008, 10:01 |
Под тормозом я имел ввиду сам компилятор, vc++ раза в 2-3 быстрее компилит мой проект, даже если в обоих случаях используются precompiled headers. Теперь по поводу api: Попробуй подключить mprapi.h, там почему то прописаны функции доступные только в Windows 2008 Server, и структур которые используются в качестве параметров, в нем тоже нету... Ну по мелочам, отсутствует функция IsUserAnAdmin в shlobj.h и пр... Все это актуально для последней версии winapi-3.11 По поводу размера бинарников: \examples\widgets\calculator\release - 32 кб Сам qt 4.3.4 (все DLL) порядка 13 мб, на mingw это было порядка 21 мб... |
Автор: Lazin 12.3.2008, 10:02 |
правда-ли что eclipse тормозит на больших проектах? (интерес чисто спортивный ![]() |
Автор: andrew_121 12.3.2008, 10:16 |
Lazin: eclipse - ваще Ж**А... ИМХО |
Автор: just_geek 12.3.2008, 12:22 |
А кто-нибудь имел извращенный опыт работы с Eclipse + qt eclipse integrator + VC++ ? ![]() |
Автор: SABROG 12.3.2008, 12:33 | ||
Кстати что касается всплывающих подсказок типа параметров для функций, то у меня Delphi думал по несколько секунд, а тут моментально. Размеры объясняются включением собственного CRT в exe, msvc юзает системный из dll, который идет в поставке с виндой. Наверно многие встречались с косяками, когда программы откомпиленные на msvc отказывались запускаться и вместе с прогой шли одни из эти этих файлов:
С другой стороны не вижу смысла вообще объяснять разницу и оправдывать компилятор. Сейчас уже никто не обращает внимания весит фильм 700 мегабайт или это 4гигабайтный DVD рип. Eclipse жрет много оперативы при индексации, но потом ее освобождает. А когда меняются файлы исходников он переиндексирует обычно только их это секундное дело. Т.ч. не удивительно, что по-началу для нового большого проекта eclipse будет долго все индексировать. Проблемы с хидерами mingw были всегда, в конце концов не mingw их пишет, а microsoft, потому и идет рассинхронизация со студией. Тем более когда речь заходит о хидерах 2008 года. Даже в этом случае можно взять хидер msvc и адаптировать под mingw или тупо скопировать нужную структуру в хидеры своего проекта. Лично видел компиляцию mozilla на eclipse, ничего страшного и жутко тормозного там небыло. Показали и процесс индексации и изминение исходников. |
Автор: Любитель 16.3.2008, 13:38 | ||||||||
Не, иде - это хорошо. ![]()
Интегратор для VC++ тупо пописывает для каждого хейдера (при его добавлении в проект) кастом билд в виде вызов кумейка. Ну плюс встраивание хелпа в МСДН (нафига?), интеграция дизайнера в студию и редактор qrc.
Я уже говорил - я так против интегратора трольтечевского. Без него только лучше ![]()
Красиво выразилcя ![]() Эээ...? |
Автор: powerfox 16.3.2008, 15:02 |
Ошибки должны писаться в stderr, поэтому можно перенаправить этот поток, куда надо. Да и make имеет настройки «болтливости», поэтому никаких читов здесь не надо. |