Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сборка в QtCreater, статическая сборка в QtCreater 
:(
    Опции темы
QApple
  Дата 30.4.2009, 20:20 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый вечер, форумчане

Есть несколько вопросов по сборке программ в QtCreater.
Т.к. для работы qt программ нужны qt-шные библиотеки, если я правильно понимаю, есть два варианта сборки программ:
1) обычная сборка + таскать с собой либы qt
2) статическая сборка

Вопросы:
1) Где (в QtCreater'e) смотреть какие библиотеки qt используются. Например если я подключил QtNetwork, какие dll и где брать? 
И сразу еще вопрос: dll это в винде, а как быть в macos? Какие особенности библиотек там?

2) Как сделать статическую сборку (без гемора, в QtCreater'e) ? Читал что нужно пересобирать сам qt, а в моем случае он идет в комплекте (sdk), как быть? Может есть более практичные способы? Тоесть если мне сегодня нужно сделать статическую сборку, а завтра я захочу обычную - каждый день пересобирать qt ? 

За глупые вопросы не пинайте, перед тем как сюда постить погуглил, но ничего конкретного (и понятного мне) не нашел  smile 
PM MAIL   Вверх
Cheloveck
Дата 30.4.2009, 21:25 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

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



Честно говоря, никогда не слышал о статической сборке Qt проектов, хотя, наверное, это возможно... но зачем?

Если ты подключил QtNetwork, то имхо логично, что нужно взять QtNetwork4.dll, все либы лежат в папке bin


--------------------
user posted image
PM Jabber   Вверх
QApple
Дата 30.4.2009, 21:40 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Cheloveck @ 30.4.2009,  21:25)
Честно говоря, никогда не слышал о статической сборке Qt проектов, хотя, наверное, это возможно... но зачем?

Если ты подключил QtNetwork, то имхо логично, что нужно взять QtNetwork4.dll, все либы лежат в папке bin

есть статическая. зачем? ну для удобства например, если прога небольшая и нужно "всё в одном"

ну с QtNetwork понятно, а вообще? если какой экзотический модуль или их много. может какието удобные тулзы есть чтобы посмотреть все что подключается? 
PM MAIL   Вверх
Remiznik
Дата 30.4.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



http://wiki.qtcentre.org/index.php?title=B...ic_applications во тут достаточно подробно про статическую сборку описано !
PM MAIL   Вверх
unicuum
  Дата 30.4.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(QApple @  30.4.2009,  20:20 Найти цитируемый пост)
QtCreater

QtCreator


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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

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



Цитата

ну для удобства например, если прога небольшая и нужно "всё в одном"

хе... и станет прога тогда большой)))

Добавлено через 57 секунд
Цитата

сли какой экзотический модуль или их много. может какието удобные тулзы есть чтобы посмотреть все что подключается?  

справка в QtCreator превосходная, там написано имя модуля, которое идентично с именем либы


--------------------
user posted image
PM Jabber   Вверх
QApple
Дата 30.4.2009, 23:48 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ок, тогда последний вопрос по первому пункту: библиотеки для макос лежат в /qt_dir/lib/имя_библиотеки? (на примере qtnetwork: /qt_dir/lib/QtNetwork.la ?)


по второму вопросу: значит без пересборки Qt никак не обойтись (средствами самого QtCreator как вариант) ? и если нужно и так и так собирать, каждый раз пересобирать сам Qt ?
PM MAIL   Вверх
unicuum
  Дата 1.5.2009, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Cheloveck @  30.4.2009,  22:27 Найти цитируемый пост)
хе... и станет прога тогда большой)))

Меньше она станет.


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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

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



Цитата

Меньше она станет. 

сфига ли она станет меньшей, если к ней прилинкуются либы? =)

Добавлено через 10 минут и 35 секунд
Цитата

ок, тогда последний вопрос по первому пункту: библиотеки для макос лежат в /qt_dir/lib/имя_библиотеки? 

Не знаю где они лежат в макоси, но в линуксе они в /usr/lib, т.е. там, где все либы. Есть вариант, как делаю я, чтоб не таскать либы в венде, кидаешь их все в одно место и дописываешь в переменную PATH путь до них.


--------------------
user posted image
PM Jabber   Вверх
Remiznik
Дата 1.5.2009, 11:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Cheloveck @ 1.5.2009,  11:05)
Цитата

Меньше она станет. 

сфига ли она станет меньшей, если к ней прилинкуются либы? =)


 
если на компьютере не установлен QT  то либы туда так и так придётся перенести !
 вот у меня простое приложение соброное не в статике + либы заняло 90 метров так как пришлось брать все либы и всё что там есть !
 а тоже приложение соброное в статике заняло 10м так как не вся билиотека вошла в приложение а только нужное .... почитай на форуме при правельной настройке и отключение не нужного можно свести размер к 2м но нужно постораться и многое отключить !

разницу чувствуешь ?
PM MAIL   Вверх
QApple
Дата 1.5.2009, 12:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



уважаемые, не нужно разводить флейм  про статику vs обычная сборка

все еще актуальны два вопроса:
1) библиотеки для макос лежат в /qt_dir/lib/имя_библиотеки? (на примере qtnetwork: /qt_dir/lib/QtNetwork.la ?)
2) для статики без пересборки Qt никак не обойтись (средствами самого QtCreator как вариант) ? и если нужно и так и так собирать, каждый раз пересобирать сам Qt ? 
PM MAIL   Вверх
Remiznik
Дата 1.5.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



по 2 !
без перезборки не обойтись никак та как нужно сконфигуировать библиотеки !
если нужны два разных варианта сборки то это можно указать параметрами или же можно  поставить два Qt  в разные папки и при не обходимости менять в Creator папку с библиотеками это там легко делаеться )
PM MAIL   Вверх
Cheloveck
Дата 1.5.2009, 18:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

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



Remiznik, да понимаю я всё, я имел введу размер исполняемого модуля. Ну а либы таскать за сабой не так уж необходимо, приложения на GTK требуют установки GTK, а чем Qt хуже?


--------------------
user posted image
PM Jabber   Вверх
bsa
Дата 1.5.2009, 19:05 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



QApple, а ты сам можешь посмотреть, где в макооси лежат либы? Кстати, сомневаюсь, что QtNetwork.la - это библиотека. Так как в линуксе это файл libtool. Скорее всего, тебе нужно искать файлы вида: libQtNetwork.so.* (вместо звездочки числа через точку). Хотя, может вместо so быть что-то другое
PM   Вверх
kemiisto
Дата 1.5.2009, 19:31 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(bsa @  1.5.2009,  17:05 Найти цитируемый пост)
Хотя, может вместо so быть что-то другое 

*.dylib
А вообще, на Mac OS Qt (тот который в бинарном SDK) идёт набором Framework'ов. Deploying там достаточно специфический.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
QApple
Дата 1.5.2009, 19:55 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(kemiisto @ 1.5.2009,  19:31)
Цитата(bsa @  1.5.2009,  17:05 Найти цитируемый пост)
Хотя, может вместо so быть что-то другое 

*.dylib
А вообще, на Mac OS Qt (тот который в бинарном SDK) идёт набором Framework'ов. Deploying там достаточно специфический.

можно подробнее что за набор фреймворков и откуда тогда либы брать?

у меня QtCreator показывает "Auto-detected Qt" в каталоге /usr. Тоесть либы брать из /usr/lib, но там много мусора. Как найти то что нужно?

кстати риторическое отступление про макос - тут непринято делать инсталляторы, таскать с собой либы и тд. Обычно программа состоит из одного .app файла большого размера и это удобно. Чтобы так было нужно делать статическую сборку и никак иначе -) . А вот в форточках уже имеет смысл писать инсталлятор
PM MAIL   Вверх
kemiisto
Дата 1.5.2009, 20:26 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(QApple @  1.5.2009,  17:55 Найти цитируемый пост)
кстати риторическое отступление про макос - тут непринято делать инсталляторы, таскать с собой либы и тд. Обычно программа состоит из одного .app файла большого размера и это удобно. Чтобы так было нужно делать статическую сборку и никак иначе -) . А вот в форточках уже имеет смысл писать инсталлятор 

Собственно, вот в этом предложении и кроется причина Ваших неудач... Вы не читаете официальные доки. А зря...

Во-первых, что значит не принято делать? Даже большая часть программ от Apple идёт с инсталляторами. 

Во-вторых, нет, Application Bundle - это не файл, а папка. 

В-третьих, различные модели распространения описаны в официальной документации. Я выбрал для своего текущего проекта модель с включением нужных Frameworks в bundle. Благо есть macdeployqt, который делает эту работу в автоматическом режиме.

Если хочется статической сборки, надо для начала собрать сам Qt статически из сорцов. Об этом написано всё там же. Но зачем?

Это сообщение отредактировал(а) kemiisto - 1.5.2009, 20:27


--------------------
PM MAIL WWW GTalk Jabber   Вверх
QApple
Дата 1.5.2009, 20:34 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




>>Во-первых, что значит не принято делать? Даже большая часть программ от Apple идёт с инсталляторами.
на маке уже больше двух лет, с инсталлером идут крайне редко, в основном очень большие программы. может процентов 10% от всех.
но это неважно

про Application Bundle вкурсе

про macdeployqt очень интересно, буду гуглить

насчет статической сборки я еще не решил что мне нужно. точнее я знаю что мне нужно - независимый .app который будет работать на любой макос

Это сообщение отредактировал(а) QApple - 1.5.2009, 20:35
PM MAIL   Вверх
bsa
Дата 2.5.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(QApple @ 1.5.2009,  20:34)
на маке уже больше двух лет, с инсталлером идут крайне редко, в основном очень большие программы. может процентов 10% от всех.

да ладно? по мне, так там процентов 10% как раз идут без инсталлера. С другой стороны, инсталлеры которые создавались специально для мака (а не универсальные), выглядят очень симпатично и логично (хотя, поначалу я смотрел на него, как баран на новые ворота) - нужно перетащить иконку программы на папочку (или что там, я уже забыл). После того, как юзер это делает, программа уже устанавливается. И совсем не обязательно, что программа состоит из одного только файла.


А кто тут такой умный, всем сообщениям без разбору минусы ставит?

Это сообщение отредактировал(а) bsa - 2.5.2009, 23:39
PM   Вверх
SaDFromSpb
Дата 29.5.2013, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Remiznik @  1.5.2009,  14:38 Найти цитируемый пост)
 и при не обходимости менять в Creator папку с библиотеками это там легко делаеться ) 

Как?


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

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

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


 




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


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

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