| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Сборка в QtCreater |
| Автор: QApple 30.4.2009, 20:20 |
| Добрый вечер, форумчане Есть несколько вопросов по сборке программ в QtCreater. Т.к. для работы qt программ нужны qt-шные библиотеки, если я правильно понимаю, есть два варианта сборки программ: 1) обычная сборка + таскать с собой либы qt 2) статическая сборка Вопросы: 1) Где (в QtCreater'e) смотреть какие библиотеки qt используются. Например если я подключил QtNetwork, какие dll и где брать? И сразу еще вопрос: dll это в винде, а как быть в macos? Какие особенности библиотек там? 2) Как сделать статическую сборку (без гемора, в QtCreater'e) ? Читал что нужно пересобирать сам qt, а в моем случае он идет в комплекте (sdk), как быть? Может есть более практичные способы? Тоесть если мне сегодня нужно сделать статическую сборку, а завтра я захочу обычную - каждый день пересобирать qt ? За глупые вопросы не пинайте, перед тем как сюда постить погуглил, но ничего конкретного (и понятного мне) не нашел |
| Автор: Cheloveck 30.4.2009, 21:25 |
| Честно говоря, никогда не слышал о статической сборке Qt проектов, хотя, наверное, это возможно... но зачем? Если ты подключил QtNetwork, то имхо логично, что нужно взять QtNetwork4.dll, все либы лежат в папке bin |
| Автор: QApple 30.4.2009, 21:40 | ||
есть статическая. зачем? ну для удобства например, если прога небольшая и нужно "всё в одном" ну с QtNetwork понятно, а вообще? если какой экзотический модуль или их много. может какието удобные тулзы есть чтобы посмотреть все что подключается? |
| Автор: Remiznik 30.4.2009, 22:19 |
| http://wiki.qtcentre.org/index.php?title=Building_static_applications во тут достаточно подробно про статическую сборку описано ! |
| Автор: unicuum 30.4.2009, 22:24 |
QtCreator |
| Автор: Cheloveck 30.4.2009, 22:27 | ||||
хе... и станет прога тогда большой))) Добавлено через 57 секунд
справка в QtCreator превосходная, там написано имя модуля, которое идентично с именем либы |
| Автор: QApple 30.4.2009, 23:48 |
| ок, тогда последний вопрос по первому пункту: библиотеки для макос лежат в /qt_dir/lib/имя_библиотеки? (на примере qtnetwork: /qt_dir/lib/QtNetwork.la ?) по второму вопросу: значит без пересборки Qt никак не обойтись (средствами самого QtCreator как вариант) ? и если нужно и так и так собирать, каждый раз пересобирать сам Qt ? |
| Автор: unicuum 1.5.2009, 00:17 |
Меньше она станет. |
| Автор: Cheloveck 1.5.2009, 11:05 | ||||
сфига ли она станет меньшей, если к ней прилинкуются либы? =) Добавлено через 10 минут и 35 секунд
Не знаю где они лежат в макоси, но в линуксе они в /usr/lib, т.е. там, где все либы. Есть вариант, как делаю я, чтоб не таскать либы в венде, кидаешь их все в одно место и дописываешь в переменную PATH путь до них. |
| Автор: Remiznik 1.5.2009, 11:41 | ||||
если на компьютере не установлен QT то либы туда так и так придётся перенести ! вот у меня простое приложение соброное не в статике + либы заняло 90 метров так как пришлось брать все либы и всё что там есть ! а тоже приложение соброное в статике заняло 10м так как не вся билиотека вошла в приложение а только нужное .... почитай на форуме при правельной настройке и отключение не нужного можно свести размер к 2м но нужно постораться и многое отключить ! разницу чувствуешь ? |
| Автор: QApple 1.5.2009, 12:10 |
| уважаемые, не нужно разводить флейм про статику vs обычная сборка все еще актуальны два вопроса: 1) библиотеки для макос лежат в /qt_dir/lib/имя_библиотеки? (на примере qtnetwork: /qt_dir/lib/QtNetwork.la ?) 2) для статики без пересборки Qt никак не обойтись (средствами самого QtCreator как вариант) ? и если нужно и так и так собирать, каждый раз пересобирать сам Qt ? |
| Автор: Remiznik 1.5.2009, 14:38 |
| по 2 ! без перезборки не обойтись никак та как нужно сконфигуировать библиотеки ! если нужны два разных варианта сборки то это можно указать параметрами или же можно поставить два Qt в разные папки и при не обходимости менять в Creator папку с библиотеками это там легко делаеться ) |
| Автор: Cheloveck 1.5.2009, 18:37 |
| Remiznik, да понимаю я всё, я имел введу размер исполняемого модуля. Ну а либы таскать за сабой не так уж необходимо, приложения на GTK требуют установки GTK, а чем Qt хуже? |
| Автор: bsa 1.5.2009, 19:05 |
| QApple, а ты сам можешь посмотреть, где в макооси лежат либы? Кстати, сомневаюсь, что QtNetwork.la - это библиотека. Так как в линуксе это файл libtool. Скорее всего, тебе нужно искать файлы вида: libQtNetwork.so.* (вместо звездочки числа через точку). Хотя, может вместо so быть что-то другое |
| Автор: kemiisto 1.5.2009, 19:31 |
*.dylib А вообще, на Mac OS Qt (тот который в бинарном SDK) идёт набором Framework'ов. Deploying там достаточно специфический. |
| Автор: QApple 1.5.2009, 19:55 | ||
можно подробнее что за набор фреймворков и откуда тогда либы брать? у меня QtCreator показывает "Auto-detected Qt" в каталоге /usr. Тоесть либы брать из /usr/lib, но там много мусора. Как найти то что нужно? кстати риторическое отступление про макос - тут непринято делать инсталляторы, таскать с собой либы и тд. Обычно программа состоит из одного .app файла большого размера и это удобно. Чтобы так было нужно делать статическую сборку и никак иначе -) . А вот в форточках уже имеет смысл писать инсталлятор |
| Автор: QApple 1.5.2009, 20:34 |
>>Во-первых, что значит не принято делать? Даже большая часть программ от Apple идёт с инсталляторами. на маке уже больше двух лет, с инсталлером идут крайне редко, в основном очень большие программы. может процентов 10% от всех. но это неважно про Application Bundle вкурсе про macdeployqt очень интересно, буду гуглить насчет статической сборки я еще не решил что мне нужно. точнее я знаю что мне нужно - независимый .app который будет работать на любой макос |
| Автор: bsa 2.5.2009, 23:37 | ||
да ладно? по мне, так там процентов 10% как раз идут без инсталлера. С другой стороны, инсталлеры которые создавались специально для мака (а не универсальные), выглядят очень симпатично и логично (хотя, поначалу я смотрел на него, как баран на новые ворота) - нужно перетащить иконку программы на папочку (или что там, я уже забыл). После того, как юзер это делает, программа уже устанавливается. И совсем не обязательно, что программа состоит из одного только файла. А кто тут такой умный, всем сообщениям без разбору минусы ставит? |
| Автор: SaDFromSpb 29.5.2013, 00:03 | ||
Как? |