Название: Сборка под 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" но ошибка таже. Пробовал 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/ Но *.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 файле добавляю следующее: Код
Название: Re: Сборка под MacOS Отправлено: ecspertiza от Май 19, 2011, 20:51 спасибо, буду знать, но это не для программы было, это я mcrypt компилил иначе он по другому не хотел прогой подхватываться.
|