Версия для печати темы
Форум на CrossPlatform.RU _ Qt Общие вопросы _ Вопросы новичка по Qt
Автор: Stitchi 20.1.2009, 18:02
Здравствуйте сильно палками не байте, но у меня есть пара вопросов. Недавно стал изучать C++. Задался целью в учёбе использовать Qt. До этого все консольные программы я писал на VS2008 Express. Решил интегрировать Qt в VS, пришлось немного скачать софта, но всё удалось сейчас VS2008Prof + Qt 4.4.3 comm.
Вопросы:
1. Существует ли альтернативная среда(бесплатная), где удобно было бы использовать QT?
2. Программа написанная с помощью VS2008 + Qt имеет проблемы при переносе на Linux?
3. Есть ли минусы разработки программы под VS2008?
4. Как правильно скомпилировать программу (в VS 2008), для запуска на другом компьютере (без VS). В настройках проекта, C/C++, Generation code, переставил Realise, так же пробовал менять с MD на MT. Пишет, что нужны библиотеки QCore.dll*. Как их правильно подключить?
5. Под Linux лучше использовать KDevelop?
Жду ответов, заранее спасибо.
Автор: ViGOur 20.1.2009, 18:10
1. Да, Eclipse + mingw + интегратор
2. Нет, если не привязываешься к windows api
3. Не видел
4. При динамической сборке Qt нужно с собой таскать библиотеки: QtCore, QtXml и ... Если не хочешь их с собой таскать, то нужна статическая сборка.
5. Ну почему же, можно тот же Eclipse, QDevelop или QtCreator.
Автор: AD 20.1.2009, 18:13
Цитата(Stitchi @ 20.1.2009, 18:02)
Здравствуйте сильно палками не байте, но у меня есть пара вопросов. Недавно стал изучать C++. Задался целью в учёбе использовать Qt. До этого все консольные программы я писал на VS2008 Express. Решил интегрировать Qt в VS, пришлось немного скачать софта, но всё удалось сейчас VS2008Prof + Qt 4.4.3 comm.
Вопросы:
1. Существует ли альтернативная среда(бесплатная), где удобно было бы использовать QT?
2. Программа написанная с помощью VS2008 + Qt имеет проблемы при переносе на Linux?
3. Есть ли минусы разработки программы под VS2008?
4. Как правильно скомпилировать программу (в VS 2008), для запуска на другом компьютере (без VS). В настройках проекта, C/C++, Generation code, переставил Realise, так же пробовал менять с MD на MT. Пишет, что нужны библиотеки QCore.dll*. Как их правильно подключить?
5. Под Linux лучше использовать KDevelop?
Жду ответов, заранее спасибо.
1) При инсталляции Qt, а не ручной сборки, Qt cобрана динамически. Т.е. Вам необходимо требуемые dll таскать с собой в том же каталоге, что и экзешник. При этом нужен манифест-файл и две библиотеки студийные: вот пример для VS2005 необходимых манифеста и длл-ок:
Microsoft.VC80.CRT.manifest, msvcr80.dll, msvcp80.dll (для 2008 скорее всего последние цифры другие)
2) Проблем при переносе не м.б., потому что перенести нельзя. Для переноса Вам придется компилировать Ваше приложение кроссплатформенным компилятором.
3) Как я понял, лучшее под линукс - это MinGW32, GDB и консоль. А редактор можно разный прикрутить!
Автор: SABROG 20.1.2009, 18:17
Цитата(Stitchi @ 20.1.2009, 18:02)
1. Существует ли альтернативная среда(бесплатная), где удобно было бы использовать QT?
QtCreator, Eclipse, QDevelop, CodeBlocks
Цитата(Stitchi @ 20.1.2009, 18:02)
2. Программа написанная с помощью VS2008 + Qt имеет проблемы при переносе на Linux?
Обычно нет.
Цитата(Stitchi @ 20.1.2009, 18:02)
3. Есть ли минусы разработки программы под VS2008?
Может быть проблема с компиляцией проекта под другими ОС, т.к. в разных компиляторах по разному реализован стандарт C++. В некоторых местах может быть не реализован вообще. Могут быть проблемы с asm вставками и препроцессорными дерективами (pragma), если такие использовались. Это относится больше уже не к самой библиотеке Qt, а к коду, который Вы можете написать своими руками.
Цитата(Stitchi @ 20.1.2009, 18:02)
4. Как правильно скомпилировать программу (в VS 2008), для запуска на другом компьютере (без VS). В настройках проекта, C/C++, Generation code, переставил Realise, так же пробовал менять с MD на MT. Пишет, что нужны библиотеки QCore.dll*. Как их правильно подключить?
В интеграторе необходимо прописать пути к Qt. Затем нужно почитать Assistant, чтобы понять к каким классам, которые вы будете использовать, какие dll относятся. Тогда достаточно скопировать нужные .dll в папку с программой. Вообще об этом много раз писалось. Достаточно воспользоваться поиском.
Цитата(Stitchi @ 20.1.2009, 18:02)
5. Под Linux лучше использовать KDevelop?
Если никогда не пользовались, то попробуйте разные, чтобы понять что вам милее. Я бы порекомендовал сначала обычный текстовый редактор и консоль, чтобы было представление как это все работает. В дальнейшем это может избавить от вопросов типа "почему компилятор не компилирует в моей любимой IDE".
Автор: Stitchi 20.1.2009, 18:20
А можно поподробней про манифест, читал с этого сайта, не понял. Если кто нибудь напишет небольшой мануал, будет вообще отлично.
Автор: AD 20.1.2009, 18:25
Цитата(Stitchi @ 20.1.2009, 18:20)
А можно поподробней про манифест, читал с этого сайта, не понял. Если кто нибудь напишет небольшой мануал, будет вообще отлично.
Тааак, тут небольшое разногласие возникло в формулировках!
Уточняю, код программы перенести на другую платформу можно, если не использовать каких либо windows-зависимых вещей. А вот саму программу перенести не удасться.
Manifest-файлы - это xml-файлы, в которых указывается какой-то код. Этот код одинаков для всех приложений. Указанный файл можно найти в папке для студии, как и сами dll!
Автор: Stitchi 20.1.2009, 18:36
Уточню насчёт первого пункта: "Под Windows".
Я и имел в виду исходный код.
Просто у меня сейчас задача, как запустить программу, где нет VS. Компилировать с Realise, помогает если без Qt, и что нужно сделать (куда положить или при компиляции указать) чтобы эти файлы подгружались из директории с exe. Как я уже понял с exe файлы придётся всегда носить.
Автор: AD 20.1.2009, 18:42
Цитата(Stitchi @ 20.1.2009, 18:36)
Просто у меня сейчас задача, как запустить программу, где нет VS. Компилировать с Realise, помогает если без Qt, и что нужно сделать (куда положить или при компиляции указать) чтобы эти файлы подгружались из директории с exe. Как я уже понял с exe файлы придётся всегда носить.
не понял. Можно по-русски? Как скомпилировать код без установки Qt? В чем вопрос?
Автор: trdm 20.1.2009, 19:16
Есть такая утилита, называется депенси волкер под винду.
Ею смотришь, какие dll-ки нужны программе, их с программой и таскаешь...
Автор: void* 20.1.2009, 19:22
Цитата(Stitchi @ 20.1.2009, 17:36)
Просто у меня сейчас задача, как запустить программу, где нет VS. Компилировать с Realise, помогает если без Qt, и что нужно сделать (куда положить или при компиляции указать) чтобы эти файлы подгружались из директории с exe. Как я уже понял с exe файлы придётся всегда носить.
смотришь какие длл-ки используются в проекте, сжимаешь каким-нибудь UPX-пакером(необязательно, просто меньше размер будет), например ASPack, но он только под винду, релиз-версии этих библиотек и ложишь их в одну папку с экзешниками и переносишь папку на другой комп и все.
Автор: Litkevich Yuriy 20.1.2009, 19:34
Цитата(Stitchi @ 20.1.2009, 21:02)
3. Есть ли минусы разработки программы под VS2008?
К минусам пожалуй можно отнести зависимости от студийных бибилиотек, более мудрёная система распространения программ, как указывали выше манифесты и т.п. В случае с MinGW32 нужна только одна маленькая dll'ка, но с IDE, на мой взгляд, дела обстоят плохо. Эклипс мне не нравится.
Автор: 4lex 21.1.2009, 18:38
Всем здрасте! Еще один вопрос ПОЛНОГО новичка .
Я в самом начале пути! прочитал это -- http://www.doc.crossplatform.ru/qt/4.3.2/tutorial-t1.html и сказал - ну сейчас как начнем, как начнем...
скачал Qt, поставил в C:\Qt\4.4.3.
пока он ставился, он же сам скачал и посавил MinGW 3.4.2 в C:\MinGW\bin.
далее запустил Qt 4.4.3 (Build Debug Libraries).
вроде все, блокнот у меня уже давно стоял, к черту все IDE, учимся... как там ... э
"...qmake -project
qmake
make ... и вы получите свое первое Qt приложение!"
Ну чтож, берем main.cpp из первого тутора, кладем в C:\t1, начинаем:
qmake -project - полет нормальный, получили t1.pro.
qmake - полет нормальный, получили все остальное, включая папки debug и release.
make - упсс...
"make: makefile: line 12: Warning -- Macro `MAKEFILE' cannot be redefined
make: Error -- `-f' not found, and can't be made"
сделали, так сказать, свое первое приложение...
смотрим Makefile - 12 строка "MAKEFILE = Makefile" - коментируем, становится немного легче
"make: Error -- `-f' not found, and can't be made", но ведь это тоже не приложение...
убираем коммент из Makefile, смотрим C:\Qt\4.4.3\bin\make.bat :
" @echo off
mingw32-make %*
"
ну.. епыть.. пишем руками в консоли - "mingw32-make" - получаем в папке debug вожделенный exe 1.5Mb 0_o.
пишем mingw32-make -?, изучаем секунд 10 и далее mingw32-make -f Makefile.Release - получаем заветный релиз.
а теперь, внимание, вопрос! В чем я не прав? Или не прав не я?
Автор: Litkevich Yuriy 21.1.2009, 18:54
Цитата(4lex @ 21.1.2009, 21:38)
вопрос! В чем я не прав? Или не прав не я?
сдаюсь, говори правильный ответ.
Автор: 4lex 21.1.2009, 19:17
Цитата(Litkevich Yuriy @ 22.1.2009, 1:54)
Цитата(4lex @ 21.1.2009, 21:38)
вопрос! В чем я не прав? Или не прав не я?
сдаюсь, говори правильный ответ.
Дык, кабы я знал...
захотелось чего-то большого и светлого, чтобы жизнь с чистого листа...
как узнал, что opery в Qt написали (старая моя любовь) ну все думаю - судьба! а тут с хеловорда суходрочность такая
.
не знаю прям идти ли дальше...
правда я забыл сказать, что не перегружал машину неск суток и туча программ всяких запущена...
подожду пока все закачается, через пару дей перегружу, а там поглядим...
Автор: Litkevich Yuriy 21.1.2009, 20:27
4lex, ты вообще о чем?
Цитата(4lex @ 21.1.2009, 21:38)
внимание, вопрос! В чем я не прав? Или не прав не я?
почему ты решил, что кому-то интересно угадывать в чем ты прав, а вчем нет? Есть какая-то проблема с Qt? Дак опиши ее.
П.С.
Цитата(4lex @ 21.1.2009, 22:17)
суходрочность такая
у нас так непринято говорить.
Автор: SABROG 21.1.2009, 20:44
Цитата(Litkevich Yuriy @ 21.1.2009, 20:27)
у нас так непринято говорить.
Потому, что это программерские будни
Раньше кстати небыло этого файлика make.bat. Я тупо копировал файл mingw32-make и переименовывал его в make. Возможно проблема кроется где-то в PATH, если помимо mingw стоит какой-нибудь Code Gear (Delphi). Возможно он и берет его make.
Автор: 4lex 23.1.2009, 5:47
2 All
>у нас так непринято говорить.
простите сорвалось...
2 Litkevich Yuriy
>почему ты решил, что кому-то интересно угадывать в чем ты прав, а вчем нет? Есть какая-то проблема с Qt? Дак опиши ее.
Боюсь описать подробнее и яснее, чем в позапрошлом посте я не смогу... Удивительно, но нашлись те, кто понял. И согласен полностью,
это не "проблема с Qt", это проблема новичка, захотевшего приобщиться к... , прочитавшего мануал с www,doc,crossplatform,ru и спервого же шага
наступившего на грабли...
2 SABROG
>Возможно проблема кроется где-то в PATH...
Ну фигзнает... я же говорю make.bat состоит из одной строки mingw32-make %* ,mingw32-make.exe при этом стартует, но ведет себя не понятным
(для меня) образом...
>...если помимо mingw стоит какой-нибудь Code Gear (Delphi). Возможно он и берет его make.
Code Gear (Delphi) никакого нет и потом, что значит "берет"? 0_о
>Потому, что это программерские будни...
Нет вопросов, но я то ведь вопрос задал не в мегакодеры > вопрос супердевелопера по Qt...
Автор: Litkevich Yuriy 23.1.2009, 6:07
4lex, ты вопрос задал буквально такой:
Цитата(4lex @ 21.1.2009, 21:38)
а теперь, внимание, вопрос! В чем я не прав? Или не прав не я?
при этом выше ты описываешь какие-то свои действия, которые заканчиваются:
Цитата(4lex @ 21.1.2009, 21:38)
получаем заветный релиз.
т.е. вроде все работает.
И мне, как стороннему читателю, непонятно к чему твой вопрос?
----
Цитата(4lex @ 21.1.2009, 21:38)
смотрим Makefile - 12 строка "MAKEFILE = Makefile" - коментируем, становится немного легче
вот эти действия совершенно непонятны. в мэйкфайл руками лезть - последнее дело.
Если возникают проблемы со сборкой приложений из-за имеющихся на машине IDE/компиляторов, то могу предложить свой подход - использовать BAT-файлы, как описано http://www.wiki.crossplatform.ru/index.php/Сборка_Qt_с_использованием_MinGW32
Автор: 4lex 23.1.2009, 6:45
Litkevich Yuriy
Это ведь не форум по юриспруденции, да? В общем случае слово "прав" может использоваться не только как антоним к слову "виновен",
но и для обозначения ПРАВильности действий. Но я учту...
Если не смотреть на сущность "каких-то моих действий", то стороннему наблюдателю все будет непонятно.
мэйкфайл руками лезть - последнее дело... мда, а кроме кнопки "пуск", можно к чему нибудь прикасаться?
Я вроде ясно сказал, что вернул потом все на место и все мои действия были напрвлены на поиск корня зла,
впрочем если не вдаваться в сущность "каких-то действий", то согласен - полный бред.
говорю определенно, у меня на машине НЕТ УСТАНОВЛЕННЫХ IDE, и я с самого начала высказал свои намерения пользоваться блокнотом
из чисто академических побуждений. И ВООБЩЕ со всем колхозом "Qt" я знаком в сумме втечение пары часов.
за ссыль - спасибо.
Автор: ViGOur 23.1.2009, 8:54
Цитата(Litkevich Yuriy @ 23.1.2009, 6:07)
вот эти действия совершенно непонятны. в мэйкфайл руками лезть - последнее дело.
Ну почему же!
Я тоже в него переодически лезу, если мне не понятно почему проект не собирается или собирается, но не так.
Автор: Litkevich Yuriy 23.1.2009, 9:37
Цитата(ViGOur @ 23.1.2009, 11:54)
Я тоже в него переодически лезу, если мне не понятно почему проект не собирается или собирается,
почитать его это одно дело, а править - другое.
мэйкфайл генерит
qmake (при работе в консоли) и после изучения мэйкфайла править надо pro-файл, если мэйкфайл получился не корректный.
А в случае с учебным пособием (tutorial-t1) все должно генерироватся правильно, если нет собственных ошибок.
я думаю bat-файл должен помочь
4lex, т.к. задает точное окружение.
Автор: Admin 23.1.2009, 17:30
Разделил тему, дальнейшее обсуждение перехало в: http://www.forum.crossplatform.ru/index.php?showtopic=2000
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)