Russian Qt Forum
Ноябрь 23, 2024, 03:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как окончательно скомпилить приложение для платформы Linux?  (Прочитано 8069 раз)
stormex
Гость
« : Сентябрь 29, 2006, 13:45 »

Приложение разрабатывалось в среде Visual Studio с использованием Qt 4.1.4
Как скомпилировать окончательный билд, чтоб он работал на Linux?
Записан
bigirbis
Гость
« Ответ #1 : Сентябрь 29, 2006, 14:08 »

Имеется в виду проект завести?
Тогда два пути: создать местный проект и претащить туда файло или написать pro-файлы.
Записан
stormex
Гость
« Ответ #2 : Сентябрь 29, 2006, 14:18 »

Цитата: "bigirbis"
Имеется в виду проект завести?
Тогда два пути: создать местный проект и претащить туда файло или написать pro-файлы.
имеется ввиду не создание проекта а окончательная компиляция, чтобы работала под Linux без установленной под Linux'ом библиотеки Qt.
Записан
bigirbis
Гость
« Ответ #3 : Сентябрь 29, 2006, 14:26 »

Ну если тебе удасться статически слинковать с Qt...
Записан
stormex
Гость
« Ответ #4 : Сентябрь 29, 2006, 14:33 »

Цитата: "bigirbis"
Ну если тебе удасться статически слинковать с Qt...
а что, Qt не расчитан на компиляцию приложений без дальнейшего участия его библиотек?
Записан
bigirbis
Гость
« Ответ #5 : Сентябрь 29, 2006, 15:02 »

Посмотри под виндой в каталоге bin. Тебе не кажется странным, что QtGui.dll весит 6 метров, а QtGui.lib весит 2 метра.
По крайней мере в стандарной конфигурации. Просто ее нужно перекомпилить в статику
Записан
Dendy
Гость
« Ответ #6 : Сентябрь 29, 2006, 16:18 »

Под Линуксом нужно установить Qt4, собрать на ней программу. Процесс деплоймента я представляю себе в двух вариантах:

1. Требавать на системе предустановленную Qt4
2. Инсталлировать динамические библиотеки Qt4 вместе с программой
Записан
enola
Гость
« Ответ #7 : Сентябрь 30, 2006, 05:49 »

Второй пункт более интересен.
А какие библиотеки нужны и куда их ставить при инсталяции программы?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #8 : Сентябрь 30, 2006, 08:39 »

к сожалению Линуксов много
и разработать независиммый дистрибутив очень трудно

поэтому самое легкое решение сборка на месте
далее идет изготовлениние пакета типа deb или rpm
Записан
enola
Гость
« Ответ #9 : Сентябрь 30, 2006, 10:22 »

А если один конкретный линукс: Red Hat Enterprise Linux 3 и я буду распространять свою прогу только на машины с такой осью?
Записан
Steven_Orko
Гость
« Ответ #10 : Сентябрь 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 и Яндекс тебе помогут, если это не подойдет.
Записан
Alex03
Гость
« Ответ #11 : Октябрь 02, 2006, 07:09 »

Я бы посоветовал сразу при разработке периодически компилять/проверять в линуксе. Ибо нюансов немеряно.

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

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

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


Страница сгенерирована за 0.048 секунд. Запросов: 23.