Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы новичка по Qt
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Stitchi
Здравствуйте сильно палками не байте, но у меня есть пара вопросов. Недавно стал изучать 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
1. Да, Eclipse + mingw + интегратор
2. Нет, если не привязываешься к windows api
3. Не видел
4. При динамической сборке Qt нужно с собой таскать библиотеки: QtCore, QtXml и ... Если не хочешь их с собой таскать, то нужна статическая сборка.
5. Ну почему же, можно тот же Eclipse, QDevelop или QtCreator.
AD
Цитата(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
Цитата(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
А можно поподробней про манифест, читал с этого сайта, не понял. Если кто нибудь напишет небольшой мануал, будет вообще отлично.
AD
Цитата(Stitchi @ 20.1.2009, 18:20) *
А можно поподробней про манифест, читал с этого сайта, не понял. Если кто нибудь напишет небольшой мануал, будет вообще отлично.

Тааак, тут небольшое разногласие возникло в формулировках! :) Уточняю, код программы перенести на другую платформу можно, если не использовать каких либо windows-зависимых вещей. А вот саму программу перенести не удасться.
Manifest-файлы - это xml-файлы, в которых указывается какой-то код. Этот код одинаков для всех приложений. Указанный файл можно найти в папке для студии, как и сами dll!
Stitchi
Уточню насчёт первого пункта: "Под Windows".
Я и имел в виду исходный код.

Просто у меня сейчас задача, как запустить программу, где нет VS. Компилировать с Realise, помогает если без Qt, и что нужно сделать (куда положить или при компиляции указать) чтобы эти файлы подгружались из директории с exe. Как я уже понял с exe файлы придётся всегда носить.
AD
Цитата(Stitchi @ 20.1.2009, 18:36) *
Просто у меня сейчас задача, как запустить программу, где нет VS. Компилировать с Realise, помогает если без Qt, и что нужно сделать (куда положить или при компиляции указать) чтобы эти файлы подгружались из директории с exe. Как я уже понял с exe файлы придётся всегда носить.

не понял. Можно по-русски? Как скомпилировать код без установки Qt? В чем вопрос?
trdm
Есть такая утилита, называется депенси волкер под винду.
Ею смотришь, какие dll-ки нужны программе, их с программой и таскаешь...
void*
Цитата(Stitchi @ 20.1.2009, 17:36) *
Просто у меня сейчас задача, как запустить программу, где нет VS. Компилировать с Realise, помогает если без Qt, и что нужно сделать (куда положить или при компиляции указать) чтобы эти файлы подгружались из директории с exe. Как я уже понял с exe файлы придётся всегда носить.

смотришь какие длл-ки используются в проекте, сжимаешь каким-нибудь UPX-пакером(необязательно, просто меньше размер будет), например ASPack, но он только под винду, релиз-версии этих библиотек и ложишь их в одну папку с экзешниками и переносишь папку на другой комп и все.
Litkevich Yuriy
Цитата(Stitchi @ 20.1.2009, 21:02) *
3. Есть ли минусы разработки программы под VS2008?
К минусам пожалуй можно отнести зависимости от студийных бибилиотек, более мудрёная система распространения программ, как указывали выше манифесты и т.п. В случае с MinGW32 нужна только одна маленькая dll'ка, но с IDE, на мой взгляд, дела обстоят плохо. Эклипс мне не нравится.
4lex
Всем здрасте! Еще один вопрос ПОЛНОГО новичка :) .
Я в самом начале пути! прочитал это -- 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
Цитата(4lex @ 21.1.2009, 21:38) *
вопрос! В чем я не прав? Или не прав не я?
сдаюсь, говори правильный ответ.
4lex
Цитата(Litkevich Yuriy @ 22.1.2009, 1:54) *
Цитата(4lex @ 21.1.2009, 21:38) *
вопрос! В чем я не прав? Или не прав не я?
сдаюсь, говори правильный ответ.

Дык, кабы я знал...
захотелось чего-то большого и светлого, чтобы жизнь с чистого листа...
как узнал, что opery в Qt написали (старая моя любовь) ну все думаю - судьба! а тут с хеловорда суходрочность такая :( .
не знаю прям идти ли дальше...
правда я забыл сказать, что не перегружал машину неск суток и туча программ всяких запущена...
подожду пока все закачается, через пару дей перегружу, а там поглядим...
Litkevich Yuriy
4lex, ты вообще о чем?

Цитата(4lex @ 21.1.2009, 21:38) *
внимание, вопрос! В чем я не прав? Или не прав не я?
почему ты решил, что кому-то интересно угадывать в чем ты прав, а вчем нет? Есть какая-то проблема с Qt? Дак опиши ее.

П.С.
Цитата(4lex @ 21.1.2009, 22:17) *
суходрочность такая
у нас так непринято говорить.
SABROG
Цитата(Litkevich Yuriy @ 21.1.2009, 20:27) *
у нас так непринято говорить.


Потому, что это программерские будни :)

Раньше кстати небыло этого файлика make.bat. Я тупо копировал файл mingw32-make и переименовывал его в make. Возможно проблема кроется где-то в PATH, если помимо mingw стоит какой-нибудь Code Gear (Delphi). Возможно он и берет его make.
4lex
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
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-файлы, как описано тут
4lex
Litkevich Yuriy
Это ведь не форум по юриспруденции, да? В общем случае слово "прав" может использоваться не только как антоним к слову "виновен",
но и для обозначения ПРАВильности действий. Но я учту...
Если не смотреть на сущность "каких-то моих действий", то стороннему наблюдателю все будет непонятно.
мэйкфайл руками лезть - последнее дело... мда, а кроме кнопки "пуск", можно к чему нибудь прикасаться?
Я вроде ясно сказал, что вернул потом все на место и все мои действия были напрвлены на поиск корня зла,
впрочем если не вдаваться в сущность "каких-то действий", то согласен - полный бред.
говорю определенно, у меня на машине НЕТ УСТАНОВЛЕННЫХ IDE, и я с самого начала высказал свои намерения пользоваться блокнотом
из чисто академических побуждений. И ВООБЩЕ со всем колхозом "Qt" я знаком в сумме втечение пары часов.
за ссыль - спасибо.
ViGOur
Цитата(Litkevich Yuriy @ 23.1.2009, 6:07) *
вот эти действия совершенно непонятны. в мэйкфайл руками лезть - последнее дело.
Ну почему же! :)
Я тоже в него переодически лезу, если мне не понятно почему проект не собирается или собирается, но не так.
Litkevich Yuriy
Цитата(ViGOur @ 23.1.2009, 11:54) *
Я тоже в него переодически лезу, если мне не понятно почему проект не собирается или собирается,
почитать его это одно дело, а править - другое.
мэйкфайл генерит qmake (при работе в консоли) и после изучения мэйкфайла править надо pro-файл, если мэйкфайл получился не корректный.

А в случае с учебным пособием (tutorial-t1) все должно генерироватся правильно, если нет собственных ошибок.

я думаю bat-файл должен помочь 4lex, т.к. задает точное окружение.
Admin
Разделил тему, дальнейшее обсуждение перехало в: MFC vs Qt
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.