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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Перенос приложения QT на другую платформу  (Прочитано 13235 раз)
eSKon
Гость
« : Июль 04, 2006, 07:00 »

Вобщем проблема в следующем. Написал программу на QT в VS2003 для Windows. Теперь нужно:
1. Скомпилять программу на Linux/FreeBSD
2. Приготовить стандартный инсталлер для этих систем который инсталлирует не из исходников (имеется ввиду, что make install в данном случае наверное не подходит, или может и подходит, просто хотелось бы знать как это выглядит стандартно)
3. Скомпилять программу на MacOs в universal binary
4. Сделать инсталлер при помощи PackageMaker
Причем для двух последних операций желатьльно сделать makefile, который нужно просто запустить make-ом. У меня мака нет, нужно чтобы заказчик у себя просто запустил make

Если кто-что может подсказать по любому из пунктов помогите плиз, три месяца работы, заказчик грозит закрыть проект если я не откомпиляю под все платформы или хотя бы не сделаю что-то, что позволит ему самому откомпилять код без хлопот (уже стихами заговорил   :lol: )
Записан
DenKor
Гость
« Ответ #1 : Июль 04, 2006, 07:17 »

Пиши pro файл для своего проекта.
А далее как обычно
1. qmake program.pro
2. make release
Записан
eSKon
Гость
« Ответ #2 : Июль 04, 2006, 07:59 »

Да pro файл сгенерен при помощи VSIntegration, когда запучкаю qmake на freebsd он немного ругается:
Project MESSAGE: You are running qmake on a generated .pro file. This may not work!
Игнорирую запускаю make
Вот тут возникают проблемы. Во первых он почему то не может найти функции классов, объявленные в заголовках, но определенных после вызова в сишниках. Насколько я знаю если функция объявлена то место определения должно быть по барабану, но он перестает компилять на такой ситуации. Потом выдает всякие варнинги, когда я переопределяю виртуальные функции и не использую некоторые параметры. Т.е. надо подавить некоторые варнинги, насколько я понимаю. Вобщем читаю сейчас маны по гцц. А с маком вообще плохо дело - нужно кроме компиляции еще и инсталлер соорудить. Т.е. мне нужно чтобы qmake при генерации makefile добавлял в него еще вызов PackageMaker для создания инсталлера, а как сделать это не знаю
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #3 : Июль 04, 2006, 08:27 »

Инсталятор делается для каждой системы отдельно.
Скажем, для
Redhat - это RPM пакет
Debian - это DEB пакет

А qmake я не пользуюсь, так как мала гибкость.
Записан
eSKon
Гость
« Ответ #4 : Июль 04, 2006, 08:41 »

Конечно для каждой системы. Но для линуха и фрибзди пойдет и тар, для виндов деплоймент проект, проблема только с маком по сути. Что значит мала гибкость ? Т.е. нельзя туда запихнуть дополнительные этапы сборки ?
Записан
Grigory
Гость
« Ответ #5 : Июль 04, 2006, 08:53 »

можно использовать и qmake. Для make install есть специальный параметр INSTALLS+= имя_цели.
например:
Код:
unix{
        alib.path = $(LIBDIR)
        alib.files = libmyprogram.so.$$VERSION
        alib.extra = cp -df libmyprogram.so* $(INSTALL_ROOT)$(LIBDIR)
     }
INSTALLS += alib

  Но .pro файл лучше писать руками, поскольку в нем будут скорее всего завимые от операционной системы секции.
Но лучше все же для линукса написать rpm. Дока по созданию rpm (на русском вот здесь есть http://www.bog.pp.ru/work/rpm.html )
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #6 : Июль 04, 2006, 14:41 »

для линукса tar не пойдет
у каждой системы все по разному лежит
Записан
eSKon
Гость
« Ответ #7 : Июль 04, 2006, 15:08 »

Да самое неприятное, что клиента линукс и фрибздя вообще не интересуют. Только винды и мак. А с qmake я не совсем понял, path, files и extra это какие-то стандартные понимаемые qmake символы ?
Записан
DenKor
Гость
« Ответ #8 : Июль 05, 2006, 12:32 »

Читай руководство по qmake.
pro файл можно сделать самим qmake.

Имей ввиду, что при использовании qmake, make нужно прописывать пути компилятора,библиотек,определений в переменную path

Имей ввиду, что при использовании mac установка qt не тривиальное дело.
Что тебе мешает с помощью эмулятора поставить mac и самому сделать бинарник.
Записан
eSKon
Гость
« Ответ #9 : Июль 05, 2006, 18:26 »

Да совсем малое мешает - отсутствие эмулятора. PearPC не предлагать, он ни сети не имеет, ни программного обеспечения, и вообще никакой связи с внешним миром, поэтому исходники свои туда загрузить я не могу, а уж поставить XCode (это типа VS от Apple только бесплатный) тем более. Может есть какой другой эмулятор о котором я не знаю ?
Записан
DenKor
Гость
« Ответ #10 : Июль 05, 2006, 19:53 »

Microsoft Virtual PC for Mac 7  с mac компьютером.
Или например
http://forum.ru-board.com/topic.cgi?forum=66&topic=0030#15

Тут вопрос в том, что если твоему заказчику так нужен откомпилированный бинарник под mac os, что мешает ему на несколько дней предоставить тебе компьютер ?
Записан
eSKon
Гость
« Ответ #11 : Июль 05, 2006, 22:40 »

Virtual PC for Mac 7 ? Вообще-то мне как-раз нужен Virtual Mac for PC если таковой имеется. PC у меня реальный есть мне виртуальный не нужен. А насчет предоставить вобщем-то ему ничто не мешает кроме одной мелочи - он живет в штате Вирджиния а я в Новосибирске Улыбающийся Вобщем угораздило меня по самое нехочу Улыбающийся
Записан
joktar
Гость
« Ответ #12 : Июль 08, 2006, 01:01 »

А терминальный доступ к нему сделать никак?
Через туже VNC.
Записан
eSKon
Гость
« Ответ #13 : Июль 10, 2006, 07:32 »

Ну может на терминальный доступ уговорю. А вот как бы поотлаживаться ? Т.е. если какой-нибудь X-Server для виндов и чтобы с мака можно было на него подцепиться ? Вроде мак использует X Windows, по идее должен позволять подключение к удаленному X Server-ую
Записан
Alikus
Гость
« Ответ #14 : Июль 12, 2006, 22:38 »

Цитата: "eSKon"
Сделать инсталлер при помощи PackageMaker
Советую посмотреть инсталлятор izPack писанный на java с исходниками. Ставиться будет в любой платформе где есть JVM Улыбающийся
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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