Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: stormex от Сентябрь 29, 2006, 13:45



Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: stormex от Сентябрь 29, 2006, 13:45
Приложение разрабатывалось в среде Visual Studio с использованием Qt 4.1.4
Как скомпилировать окончательный билд, чтоб он работал на Linux?


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: bigirbis от Сентябрь 29, 2006, 14:08
Имеется в виду проект завести?
Тогда два пути: создать местный проект и претащить туда файло или написать pro-файлы.


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: stormex от Сентябрь 29, 2006, 14:18
Цитата: "bigirbis"
Имеется в виду проект завести?
Тогда два пути: создать местный проект и претащить туда файло или написать pro-файлы.
имеется ввиду не создание проекта а окончательная компиляция, чтобы работала под Linux без установленной под Linux'ом библиотеки Qt.


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: bigirbis от Сентябрь 29, 2006, 14:26
Ну если тебе удасться статически слинковать с Qt...


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: stormex от Сентябрь 29, 2006, 14:33
Цитата: "bigirbis"
Ну если тебе удасться статически слинковать с Qt...
а что, Qt не расчитан на компиляцию приложений без дальнейшего участия его библиотек?


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: bigirbis от Сентябрь 29, 2006, 15:02
Посмотри под виндой в каталоге bin. Тебе не кажется странным, что QtGui.dll весит 6 метров, а QtGui.lib весит 2 метра.
По крайней мере в стандарной конфигурации. Просто ее нужно перекомпилить в статику


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: Dendy от Сентябрь 29, 2006, 16:18
Под Линуксом нужно установить Qt4, собрать на ней программу. Процесс деплоймента я представляю себе в двух вариантах:

1. Требавать на системе предустановленную Qt4
2. Инсталлировать динамические библиотеки Qt4 вместе с программой


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: enola от Сентябрь 30, 2006, 05:49
Второй пункт более интересен.
А какие библиотеки нужны и куда их ставить при инсталяции программы?


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: Admin от Сентябрь 30, 2006, 08:39
к сожалению Линуксов много
и разработать независиммый дистрибутив очень трудно

поэтому самое легкое решение сборка на месте
далее идет изготовлениние пакета типа deb или rpm


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: enola от Сентябрь 30, 2006, 10:22
А если один конкретный линукс: Red Hat Enterprise Linux 3 и я буду распространять свою прогу только на машины с такой осью?


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: Steven_Orko от Сентябрь 30, 2006, 12:20
Хм, к вопросу об том, какие библиотеки нужны.
Ты сам когда создавал проект, должен был прописывать в pro-файле все необходимые модули, которые qmake потом записал в makefile для их линковки с твоей программой. Соответственно, используешь сеть, значит тебе нуже модуль QtNetwork, ну и так далее. Если используешь только одну ось, то сразу становится легче. Но!!!! Даже одна Ось может иметь свою версию. Ты либо определись,под какую версию ты будешь распространять свой продукт, либо имей несколько версий его для соответственно разных версий Red Hat.
Далее сценарий прост:
 - Компилишь на машине с сответствующей версией ос свой продукт.
 - Собираешь, все необходимые библиотеки Qt вместе по сценарию, описанному выше.
 -  Создаешь rpm, в котором прописываешь сценарий установки, сценарий удаления, сценарий обновления и т.д. и т.п.

Если речь идет о дистрибутиве Линукс, то ты не ошибешься, если готовые либы Qt пропишешь в директорию /usr/lib, а потом в ней запустишь ldconfig. Таким образом создастся специальный кеш, который используется при загрузке проги. Каталог для исталляции своего продукта выбирай на свое усмотрение. Обычно считается правилом хорошего тона ставить в /usr/share.
Сценариев создания rpm по сети много. Вот первое, что нашел:
http://www.linux.spb.ru/docs/rpm_build.htm.
Google и Яндекс тебе помогут, если это не подойдет.


Название: Как окончательно скомпилить приложение для платформы Linux?
Отправлено: Alex03 от Октябрь 02, 2006, 07:09
Я бы посоветовал сразу при разработке периодически компилять/проверять в линуксе. Ибо нюансов немеряно.

По своему опыту скажу что мне только GCC-варнинги съэкономили кучу времени (это кстати обходится компиляцией GCC в винде).

Если в линуксе qt из исходников собирается то, для генерации статической либы можно так.
make staticlib
или же (не очень помню)
cd src ; make staticlib

Если приложение не использует исключения сквозь qt-код то размеры qt-библиотек можно уменьшить раза в 1.5. А вырубив ненужную функциональность можно и в 2 раза уменьшить. По крайней мере в qt3 я этого добивался.