Название: Кросс компиляция Отправлено: merke от Март 13, 2015, 11:22 Всем привет!
Давно интересует один момент. Если ли готовые инстурменты позволяющие собирать исходники сразу под несколько ОС? Допустим есть исходники, мне нужно скомпилить под Win32-64, Linux32-64 у меня есть 4 виртуальные машины для этого и есть некий инструмент в который я скинул исходники, а в результате получил 4 исполняемых файла. Это бы в разы ускорило время разработки. Писать подобное нету времени. Может кто встречался с таким чудом? Название: Re: Кросс компиляция Отправлено: Пантер от Март 13, 2015, 11:34 Под Линухой можно компилять виндовые бинари.
Название: Re: Кросс компиляция Отправлено: merke от Март 13, 2015, 11:36 пробовал настроить, но блин после такой компиляции приходится в проект подкидывать еще и библиотеки msvc.
Название: Re: Кросс компиляция Отправлено: Пантер от Март 13, 2015, 11:39 Я пару раз пытался под Гентой настроить, но так и не получилось. :(
Название: Re: Кросс компиляция Отправлено: Igors от Март 13, 2015, 11:40 Писать подобное нету времени. :)Может кто встречался с таким чудом? Много лет назад CodeWarrior умел компилить под MacOS и Вындоуз. Сразу 2 исполняемых файла правда не получалось, надо было переставить таргет - ну не суть. Попробовав неск раз отказался, вернулся к обычному перетаскиванию исходников и.т.п. Причина проста - отладку "на другой" платформе не запустить, т.е. весь этот "кросс" до первого милиционера. Название: Re: Кросс компиляция Отправлено: RSATom от Март 13, 2015, 12:33 Если уже есть виртуальные машины - можно поставить Continuous Integration службу (например Jenkins) на каждой из них (одна будет основной а другие ведомыми) и настроить автоматическую сборку например по появлению нового коммита в репозитории. По завершении сборки бинарники могут выкладываться в единое место. Собственно это самый правильный, надежный, быстрый и безпроблемный вариант по сравнению с кросскомпиляцией.
Название: Re: Кросс компиляция Отправлено: Пантер от Март 13, 2015, 12:40 Если уже есть виртуальные машины - можно поставить Continuous Integration службу (например Jenkins) на каждой из них (одна будет основной а другие ведомыми) и настроить автоматическую сборку например по появлению нового коммита в репозитории. По завершении сборки бинарники могут выкладываться в единое место. Собственно это самый правильный, надежный, быстрый и безпроблемный вариант по сравнению с кросскомпиляцией. Поддерживаю. Вполне хороший вариант. Если есть возможность держать несколько виртуалок постоянно включенными.Название: Re: Кросс компиляция Отправлено: RSATom от Март 13, 2015, 12:46 Если есть возможность держать несколько виртуалок постоянно включенными. Теоретически одновременно нужно иметь запущенными только 2 виртуалки - master и одну из slave. Но даже их можно запускать по расписанию (и даже shutdown'ить непосредственно из jenkins ;) - но сам я никогда такого не делал, но принципиальных ограничений не вижу.Название: Re: Кросс компиляция Отправлено: RSATom от Март 13, 2015, 12:48 а можно и вообще не заморачиваться с master/slave и настроить полноценные CI в каждой из виртуалок и запускать их по очереди.
Название: Re: Кросс компиляция Отправлено: merke от Март 13, 2015, 13:32 о спасибо! буду играться с jenkins!
Название: Re: Кросс компиляция Отправлено: Nidxogg от Март 13, 2015, 15:40 http://habrahabr.ru/post/198142/
Название: Re: Кросс компиляция Отправлено: RSATom от Март 13, 2015, 16:56 http://habrahabr.ru/post/198142/ еще один довод в пользу виртуальных машин :) Название: Re: Кросс компиляция Отправлено: Termit от Март 13, 2015, 19:01 Использую Jenkins. Собираю одновременно в восьми разных разных окружениях. Все slave живут на виртуальных машинах. Попутно прикрутил проверку cppcheck.
Очень удобно, рекомендую. ;) Если будут вопросы в меру сил смогу подсказать. Название: Re: Кросс компиляция Отправлено: qate от Март 16, 2015, 13:18 объясните - когда выгодно использовать Jenkins ? дела с ним не имел, сейчас делаю сборку linux32 и кросскомпиляцией win32
этого пока хватает или я не знаю какойто выгоды ? ) Название: Re: Кросс компиляция Отправлено: RSATom от Март 16, 2015, 13:38 На мой взгляд первая выгода - экономия времени. Сервер сборки сам вытаскивает последнюю версию, сам все конфигурит и собирает, возможно даже сам выкладывает для скачивания. Когда то же самое делается самостоятельно - раз за разом по 5-10 минут, и в итоге набегает много...
Вторая выгода - сервер сборки может выполнять сборку хоть каждую минуту, соответственно и тестировать заинтересованные люди могут тоже всегда самую последнюю версию. Название: Re: Кросс компиляция Отправлено: RSATom от Март 16, 2015, 13:39 Использую Jenkins. Собираю одновременно в восьми разных разных окружениях. Все slave живут на виртуальных машинах. slave запущены одновременно? Или как то по очереди запускаются? Сборка под Mac есть?Название: Re: Кросс компиляция Отправлено: qate от Март 16, 2015, 14:46 На мой взгляд первая выгода - экономия времени. а чем это лучше скрипта, который переодически берет новый коммит и выполняет над ним сборку, создание дистрибутива, и т.п. ? Название: Re: Кросс компиляция Отправлено: RSATom от Март 16, 2015, 14:50 Формально такой скрипт и есть разновидность билд сервера :) Другой вопрос что в случае использования того же Jenkins нет необходимости эти скрипты писать руками, все (ну или почти все) настраивается через браузер. Опять же существует большое количество готовых плагинов для решения разных задач - опять же не нужно руками писать.
Но если у вас все и так уже настроено и работает и устраивает - тогда действительно вам нет необходимости что-либо менять. |