Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [qt] независимый экзешник 
:(
    Опции темы
gordmiand
Дата 29.4.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



подскажите пож-та как можно скомпилировать проект, чтобы чисто один его экзешник (или весь проект) работал бы на компе (под линуксом), где вообще нет Qt...
PM MAIL   Вверх
borisbn
Дата 29.4.2010, 22:39 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Точно не помню, но по-моему в лицензии на Open Source Qt сказано, что обязательно распространять свой exe-шник вместе с библиотеками Qt

Это сообщение отредактировал(а) borisbn - 29.4.2010, 22:40


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
gordmiand
Дата 29.4.2010, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



жаль, что точно не помните - очень надо....
а с какими именно "....с библиотеками Qt"?
PM MAIL   Вверх
borisbn
Дата 30.4.2010, 06:17 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



В windows'е с DLL-ками. Например, если используешь gui, нужно распространять QtCore4.dll и QtGui4.dll. Посмотри лицензию на их сайте


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Любитель
Дата 30.4.2010, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Ну это ж уже обсуждалось ни раз..

Если не распространять исходники, то надо обеспечить возможность юзерам собрать ваше приложение с другой версии Qt (грубо говоря). Т. е., если подходить формально - достаточно распространения объектных файлов.

А для собирания одного мегафайла - надо пользоваться статической линковокй. Для этого надо вначале собрать статические либы Qt. Информация есть в доках.

PS Может есть активисты, чтобы сделать инструкцию по использованию статической линковки, strip-а и "лицензионными" отличиями?


--------------------
PM MAIL ICQ Skype   Вверх
Deex42Iv
Дата 30.4.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Trust No One



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

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



Цитата(Любитель @  30.4.2010,  17:39 Найти цитируемый пост)
Может есть активисты, чтобы сделать инструкцию по использованию статической линковки, strip-а и "лицензионными" отличиями

да, было бы неплохо
PM MAIL WWW Skype Jabber   Вверх
gordmiand
Дата 30.4.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Любитель: а в каких именно "доках"? дайте ссылочку пож-та....
PM MAIL   Вверх
KL7
Дата 1.5.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Например, вот это - Building static Qt on Windows. Или вот это.


PM MAIL ICQ   Вверх
gordmiand
Дата 1.5.2010, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Это сообщение отредактировал(а) gordmiand - 1.5.2010, 18:50
PM MAIL   Вверх
KL7
Дата 1.5.2010, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вы уж определитесь: Вам под линукс или все-таки exe-шники   smile 
А вообще динамически слинкованному exe-шнику как правило нужны QtCore4.dll, QtGui4.dll, mingwm10.dll и (для Qt 4.6) libgcc_s_dw2-1.dll.

Вот наверно то, что Вам надо - Builing static Qt on Linux. Но там для старенького Qt. 
PM MAIL ICQ   Вверх
gordmiand
Дата 1.5.2010, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



KL7: имелся ввиду пусковой файл программы в линуксе - то есть тот же экзешник программы...
по Вашей ссылке - там все заморочено...уж лучше буду таскать с исполняемым файлом проги набор дополнительных файлов, чем курочить кути...
PM MAIL   Вверх
KL7
Дата 2.5.2010, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(gordmiand @  1.5.2010,  23:45 Найти цитируемый пост)
имелся ввиду пусковой файл программы в линуксе - то есть тот же экзешник программы...

Ясно. Просто никогда не видел, чтобы bin-ы exe-шниками называли  smile 
PM MAIL ICQ   Вверх
gordmiand
Дата 2.5.2010, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



KL7 : ну извините - я на линукс токо перехожу, а так все еще мыслю категориями и понятиями виндов...
так все-таки - для корректной работы приложения на компе без Qt достаточно иметь в проекте его объектные *.o -файлы? 
PM MAIL   Вверх
KL7
Дата 2.5.2010, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(gordmiand @  2.5.2010,  20:03 Найти цитируемый пост)
так все-таки - для корректной работы приложения на компе без Qt достаточно иметь в проекте его объектные *.o -файлы?  

Нет. 
Для работы qt-приложения под виндой нужно иметь QtCore4.dll, QtGui4.dll, mingwm10.dll и (для Qt 4.6) libgcc_s_dw2-1.dll. Первые две можно найти в папке qt\bin, вторые две - в mingw\bin. 
Как обстоят дела в прочих ОС - не в курсе.

А объектные файлы тут упоминали по поводу лицензионного соглашения. Я не знаток в этой области, но сейчас бесплатная Qt доступна с GNU LGPL лицензией и согласно ей
Цитата

Должна существовать возможность связывания разрабатываемого ПО с новейшей версией программы или библиотеки, охваченной LGPL. Наиболее часто используемый способ сделать так — это использовать «подходящий механизм разделяемых библиотек для связывания». Альтернативой этому является разрешение для статической библиотеки, если предоставлены либо исходный код, либо приспособленные для связывания объектные файлы.


Вобщем если Вы серьезно решите нести свой проект в массы, то должны выдать обществу не только толстый exe-шник со статически слинкованными библиотеками, но и исходники или объектные файлы, чтобы народ потом смог пересобрать Ваше приложение, если у них возникнет такое желание.

А для запуска на машине без qt Ваши *.o файлы никак не помогут. Нужны именно qt-шные библиотеки.

Только проблема в том, что QtCore4.dll + QtGui4.dll - это около 12 метров. Т.е. Ваш дистрибутив (программа + библиотеки) будет весит 12+ метров. Даже если там тренировочный 'hello world'.
А статически слинкованный exe, упакованный upx-ом, у меня получается около 2-3 метров. Мне, конечно, стыдно за вероятное нарушение лицензии, но лабы преподам я сдаю именно в таком варианте.

Это сообщение отредактировал(а) KL7 - 2.5.2010, 23:40
PM MAIL ICQ   Вверх
gordmiand
Дата 3.5.2010, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



KL7: ясно... то есть достаточно таскать с собой всего 4 файла - QtCore4.dll, QtGui4.dll, mingwm10.dll и (для Qt 4.6) libgcc_s_dw2-1.dll? а то со статической линковкой Qt под линукс как-то совсем сложно....

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

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

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


 




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


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

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