Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 04, 2006, 07:00 Вобщем проблема в следующем. Написал программу на QT в VS2003 для Windows. Теперь нужно:
1. Скомпилять программу на Linux/FreeBSD 2. Приготовить стандартный инсталлер для этих систем который инсталлирует не из исходников (имеется ввиду, что make install в данном случае наверное не подходит, или может и подходит, просто хотелось бы знать как это выглядит стандартно) 3. Скомпилять программу на MacOs в universal binary 4. Сделать инсталлер при помощи PackageMaker Причем для двух последних операций желатьльно сделать makefile, который нужно просто запустить make-ом. У меня мака нет, нужно чтобы заказчик у себя просто запустил make Если кто-что может подсказать по любому из пунктов помогите плиз, три месяца работы, заказчик грозит закрыть проект если я не откомпиляю под все платформы или хотя бы не сделаю что-то, что позволит ему самому откомпилять код без хлопот (уже стихами заговорил :lol: ) Название: Перенос приложения QT на другую платформу Отправлено: DenKor от Июль 04, 2006, 07:17 Пиши pro файл для своего проекта.
А далее как обычно 1. qmake program.pro 2. make release Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 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 для создания инсталлера, а как сделать это не знаю Название: Перенос приложения QT на другую платформу Отправлено: Admin от Июль 04, 2006, 08:27 Инсталятор делается для каждой системы отдельно.
Скажем, для Redhat - это RPM пакет Debian - это DEB пакет А qmake я не пользуюсь, так как мала гибкость. Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 04, 2006, 08:41 Конечно для каждой системы. Но для линуха и фрибзди пойдет и тар, для виндов деплоймент проект, проблема только с маком по сути. Что значит мала гибкость ? Т.е. нельзя туда запихнуть дополнительные этапы сборки ?
Название: Перенос приложения QT на другую платформу Отправлено: Grigory от Июль 04, 2006, 08:53 можно использовать и qmake. Для make install есть специальный параметр INSTALLS+= имя_цели.
например: Код: unix{ Но .pro файл лучше писать руками, поскольку в нем будут скорее всего завимые от операционной системы секции. Но лучше все же для линукса написать rpm. Дока по созданию rpm (на русском вот здесь есть http://www.bog.pp.ru/work/rpm.html ) Название: Перенос приложения QT на другую платформу Отправлено: Admin от Июль 04, 2006, 14:41 для линукса tar не пойдет
у каждой системы все по разному лежит Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 04, 2006, 15:08 Да самое неприятное, что клиента линукс и фрибздя вообще не интересуют. Только винды и мак. А с qmake я не совсем понял, path, files и extra это какие-то стандартные понимаемые qmake символы ?
Название: Перенос приложения QT на другую платформу Отправлено: DenKor от Июль 05, 2006, 12:32 Читай руководство по qmake.
pro файл можно сделать самим qmake. Имей ввиду, что при использовании qmake, make нужно прописывать пути компилятора,библиотек,определений в переменную path Имей ввиду, что при использовании mac установка qt не тривиальное дело. Что тебе мешает с помощью эмулятора поставить mac и самому сделать бинарник. Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 05, 2006, 18:26 Да совсем малое мешает - отсутствие эмулятора. PearPC не предлагать, он ни сети не имеет, ни программного обеспечения, и вообще никакой связи с внешним миром, поэтому исходники свои туда загрузить я не могу, а уж поставить XCode (это типа VS от Apple только бесплатный) тем более. Может есть какой другой эмулятор о котором я не знаю ?
Название: Перенос приложения QT на другую платформу Отправлено: DenKor от Июль 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, что мешает ему на несколько дней предоставить тебе компьютер ? Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 05, 2006, 22:40 Virtual PC for Mac 7 ? Вообще-то мне как-раз нужен Virtual Mac for PC если таковой имеется. PC у меня реальный есть мне виртуальный не нужен. А насчет предоставить вобщем-то ему ничто не мешает кроме одной мелочи - он живет в штате Вирджиния а я в Новосибирске :) Вобщем угораздило меня по самое нехочу :)
Название: Перенос приложения QT на другую платформу Отправлено: joktar от Июль 08, 2006, 01:01 А терминальный доступ к нему сделать никак?
Через туже VNC. Название: Перенос приложения QT на другую платформу Отправлено: eSKon от Июль 10, 2006, 07:32 Ну может на терминальный доступ уговорю. А вот как бы поотлаживаться ? Т.е. если какой-нибудь X-Server для виндов и чтобы с мака можно было на него подцепиться ? Вроде мак использует X Windows, по идее должен позволять подключение к удаленному X Server-ую
Название: Re: Перенос приложения QT на другую платформу Отправлено: Alikus от Июль 12, 2006, 22:38 Цитата: "eSKon" Сделать инсталлер при помощи PackageMaker Советую посмотреть инсталлятор izPack писанный на java с исходниками. Ставиться будет в любой платформе где есть JVM :)Название: Перенос приложения QT на другую платформу Отправлено: Negative от Июль 13, 2006, 15:28 Цитата: "Admin" для линукса tar не пойдет у каждой системы все по разному лежит ну и что? да запросто положить продукт кужа-нить в /usr/lib/product_name или в /opt/product_name, многие коммерческие продукты так делают и нормально живут. конечно придется инсталлятор на шелле написать, но это не проблема |