Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: ecspertiza от Февраль 07, 2011, 21:38



Название: Сборка под MacOS
Отправлено: ecspertiza от Февраль 07, 2011, 21:38
Кто занимался сборкой под мак? Подскажите что к чему, вроде тот же Unix но как то не все так просто.
как обычно делаю просто qmake создается файл имя_проекта.xcodeproj естественно make его не видит, что с ним делать не ясно.
если делаю qmake -spec macx-g++ все хорошо, создается Makefile ,но при выполнении make в консоли вижу одну строку
Код:
/usr/bin/qmake -spec /usr/local/Qt4.7/mkspecs/macx-g++ -o Makefile Component.pro

и она постоянно повторяется, собственно говоря непонятно как софт компилить, может есть хоть маны какие то, или подскажете что делать?

насколько я понимаю при сборке просто еще раз повторяется этап qmake ,но зачем и как этого избежать


Название: Re: Сборка под MacOS
Отправлено: Igors от Февраль 07, 2011, 21:48
Никогда не понимал что такое "сборка"  :) Скачиваете Xcode (бесплатно, просто зарегистрируйтесь только на Apple), xcodeprpj это xml файл его проекта. Открываете IDE и компилите (Cmd-B). Опций там конечно немало - ну так это везде так.


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Февраль 08, 2011, 11:09
Igors, спасибо через Xcode вроде заработало, единственное не могу пока найти "вывод в консоль", то есть интересно какие команды для "сборки" выполняет Xcode и чем они отличаются от make.


Название: Re: Сборка под MacOS
Отправлено: Igors от Февраль 08, 2011, 11:38
единственное не могу пока найти "вывод в консоль", то есть интересно какие команды для "сборки" выполняет Xcode и чем они отличаются от make.
С консолью там выбор шикарный. В общих чертах: ну опции проекта Вы нашли. Но еще можно кликать на "target" и на "executable" - там тоже много нужного.  Разверните "target" - он покажет все команды. Можно редактировать (аккуратно). Заморочки есть, напр не понимает путь с пробелом, нужен слеш. Вообще дропайте фолдеры/файлы вместо того чтобы долбить текст (на Mac работаете).


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Февраль 08, 2011, 12:14
Еще раз спасибо, поковыряю :)


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Февраль 21, 2011, 20:06
А никому не попадалось статья как под мак инсталяшку собрать? Насколько я понимаю они в формате .dmg ?


Название: Re: Сборка под MacOS
Отправлено: Авварон от Февраль 21, 2011, 23:34
нет. дмг - это образ диска (обычный исо+проприетарное то ли шифрование то ли сжатие). А инсталяшка - .pkg


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Март 11, 2011, 11:29
У меня таки получилось собрать пакет под мак, но при переносе на другие машине он просит phonon.fraemwork, QtGUI.fraemwork и т.д. впринципе вкомпилить в пакет их не сложно, но один только QtCore.fraemwork весит 54 метра. Я просто не совсем знаком с философией мака и не представляю как там решаются эти зависимости. Но мне кажется что есть лучший способ чем компилить их в пакет. Не подскажете как можно решить эти зависимости?


Название: Re: Сборка под MacOS
Отправлено: Авварон от Март 11, 2011, 16:25
блин как 1й раз в школу) все как в винде - если дохрена весит, значит кладете дебаг. Просто внутри фреймворка кладутся обе либы, 1 из них надо удалить.
причем по-моему тулза к-ая идет с qt (macdelpoyqt) вроде это и делает автоматом.


Название: Re: Сборка под MacOS
Отправлено: Igors от Март 12, 2011, 19:33
У меня таки получилось собрать пакет под мак, но при переносе на другие машине он просит phonon.fraemwork, QtGUI.fraemwork и т.д. впринципе вкомпилить в пакет их не сложно, но один только QtCore.fraemwork весит 54 метра. Я просто не совсем знаком с философией мака и не представляю как там решаются эти зависимости. Но мне кажется что есть лучший способ чем компилить их в пакет. Не подскажете как можно решить эти зависимости?
Философия проста - попросить пользователя "нажать бубочку". То есть сказать SDK, толкнуть инсталлятор и включить там галочку "ставить phonon". Никаких затруднений у юзера это не вызывает и инсталлятор сам разберется куда заливать dylib(ы) чтобы Qt приложение их отыскало - здесь не нужно об этом помнить. Может что-то даже есть получше/покороче SDK


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Март 14, 2011, 09:26
Спасибо за подсказки я еще поищу "бубочку" :) но пока пакет собираю через Package Installer вроде , а тема с macdelpoyqt вроде помогла, тестер еще не отписывался ,но вроде все было хорошо.


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 11:30
Продолжаю мучатся со сборкой под мак. К приложению нужно прикрутить libmcrypt при сборке Xcode получаю ошибку
Код:
file was built for unsupported file format which is not the architecture being linked i386

немного погуглив пересобрал mcrypt след. образом

Код:
./configure  CC="gcc -arch x86_64" CXX="g++ -arch x86_64"
make
make install

но ошибка таже. Пробовал libmcrypt ставить с помощью port. Но опять же ошибка таже.  Что можно еще сделать ?




Название: Re: Сборка под MacOS
Отправлено: Alucard от Май 13, 2011, 11:34
i386


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 11:41
спасибо, уже сам нашел :)

Теперь след. трабла. Собралась программа. Я выполнил macdeploy что бы все зависимости были в .app ,собираю .pkg с помощью PackageMaker добавляю свой проект, указываю что бы он ставился в /Application пакет собирается хорошо ,а вот после установки проги в /Application нету, можно ли установку как то запустить консольно что бы видеть что куда ставится ?


Название: Re: Сборка под MacOS
Отправлено: Igors от Май 13, 2011, 11:59
Оффтоп, но может пригодиться. Чего Вы (настойчиво) лезете в командную строку? Не так уж давно на Mac (classic) ее вообще не было - и жили прекрасно. В Xcode открываете установки проекта, выбираете что надо в Architecture. Идете в разделы Deployment, Packaging и.т.п.

Др. словами возможно Ваши трудности вызываются тем что Вы делаете "как на Линукс"


Название: Re: Сборка под MacOS
Отправлено: Авварон от Май 13, 2011, 12:05
Я делал как на линукс и всё работало. ХКодом в жизни не пользовался


Название: Re: Сборка под MacOS
Отправлено: Alucard от Май 13, 2011, 12:06
Делать нужно так чтоб понимать что делаешь... а не IDE/Дядя Вася/... за тебя все сделает


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 12:11
Вполне возможно, я просто так привык к линуксовой консоли :)


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 12:17
что самое интересное, у тестера ставиться все хорошо ??? Либо чудо либо фокус :) а у меня продолжает говорить что все хорошо ,а программы в /Application нету  :)


Название: Re: Сборка под MacOS
Отправлено: Igors от Май 13, 2011, 12:34
Делать нужно так чтоб понимать что делаешь... а не IDE/Дядя Вася/... за тебя все сделает
Ну вот допустим Вы в командной строке написали i386, а я включил это в IDE. Так кто из нас больше понимает? :) Глупо, просто Вам удобнее так, а мне так - вот и все


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 12:41
мне думается, это уже дело на любителя :) Мне с инсталяшкой чего делать то лучше скажите?  :) Тут магия творится, шайтан инстал :)


Название: Re: Сборка под MacOS
Отправлено: Alucard от Май 13, 2011, 12:42
а если посмотреть на "кодеров" после MSVS/Borland, которые "пишут" на с++...
сколько элементарных вопросов у них возникает на ровном месте без IDE?

з.ы.
Цитировать
Так кто из нас больше понимает?
Надеюсь вы осознаете, что я вовсе не преуменьшаю ваши познания


Название: Re: Сборка под MacOS
Отправлено: Alucard от Май 13, 2011, 12:43
macdeploy умеет dmg делать, если Вас app не устраивает

в отношении инсталляшки - не в курсе


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 12:48
Я думаю что дело не в dmg или app, а в уже готовом pkg . Ибо в нем есть , сама прога и звуки к ней. Так вот звуки после установки ставятся хорошо, как положено, а *.app файл в Application не поподает. Тестировал pkg на двух маках на своем и на маке тестера. Вот у тестера все хорошо, а у меня нет. Просто не хотелось бы что бы у пользователей были такие же косяки


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 12:58
Нашел как запустить под консолью

Код:
sudo installer -pkg Soft.pkg -target /Applications/
installer: Package name is Free-tray
installer: Upgrading at base path /
installer: The upgrade was successful.

Но *.app все равно нигде нету, в борьбе с волшебством я безсилен :)




Название: Re: Сборка под MacOS
Отправлено: Авварон от Май 13, 2011, 13:06
при установке можно полный лог почитать


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 13, 2011, 13:18
а как?  :)

в /var/log/install.log по делу ничего не написано


Название: Re: Сборка под MacOS
Отправлено: Авварон от Май 13, 2011, 13:34
в инсталляторе пункт в меню есть.


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 19, 2011, 12:41
С установкой разобрался, просто при инстале если на винте есть еще один файл *.app он его заменяет.

Но появились некоторые траблы при переносе и сборке. Собрал прогу и все было бы хорошо ,но при переносе на другой мак появилось сообщение о том что данная архитектура не поддерживается. Стало быть решил собрать под мультиплатформу, все бы ничего, но в проекте есть libmcrypt, который собрать с помошью xcode ну уж никак не получается. Собираю из под консоли но не знаю как правильно задать мультиплатформу, делаю вот так
Код:
./configure CFLAGS="-arch x86_64 -arhc i386" CXXFLAGS="-arch x86_64 -arhc i386"

конфигурируется хорошо ,но при make выдает ошибку
Код:
-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

и собственно вопрос, что делать? :) я с радостью бы отключил флаги -E, -S и т.д. но не знаю как :)


 


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 19, 2011, 20:18
Нашел!!!!

как то так
Код:
MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --disable-dependency-tracking


Название: Re: Сборка под MacOS
Отправлено: kambala от Май 19, 2011, 20:42
такие вещи лучше в *.pro прописывать (и об этом кстати рассказано в ассистенте в разделе Deploying an Application on Mac OS X).

я все программы, которые должны запускаться на маке, компилирую с помощью 10.5 СДК (чтоб больше систем могло запустить) и под архитектуры x86/ppc. для этого в *.pro файле добавляю следующее:
Код
C++ (Qt)
macx {
QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk
CONFIG += x86 ppc
}


Название: Re: Сборка под MacOS
Отправлено: ecspertiza от Май 19, 2011, 20:51
спасибо, буду знать, но это не для программы было, это я mcrypt компилил иначе он по другому не хотел прогой подхватываться.