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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Кросс компиляция  (Прочитано 9463 раз)
merke
Гость
« : Март 13, 2015, 11:22 »

Всем привет!

Давно интересует один момент. Если ли готовые инстурменты позволяющие собирать исходники сразу под несколько ОС? Допустим есть исходники, мне нужно скомпилить под Win32-64, Linux32-64 у меня есть 4 виртуальные машины для этого и есть некий инструмент в который я скинул исходники, а в результате получил 4 исполняемых файла. Это бы в разы ускорило время разработки. Писать подобное нету времени. Может кто встречался с таким чудом?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 13, 2015, 11:34 »

Под Линухой можно компилять виндовые бинари.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
merke
Гость
« Ответ #2 : Март 13, 2015, 11:36 »

пробовал настроить, но блин после такой компиляции приходится в проект подкидывать еще и библиотеки msvc.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Март 13, 2015, 11:39 »

Я пару раз пытался под Гентой настроить, но так и не получилось. Грустный
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Март 13, 2015, 11:40 »

Писать подобное нету времени.
Улыбающийся
Может кто встречался с таким чудом?
Много лет назад CodeWarrior умел компилить под MacOS и Вындоуз. Сразу 2 исполняемых файла правда не получалось, надо было переставить таргет - ну не суть. Попробовав неск раз  отказался, вернулся к обычному перетаскиванию исходников и.т.п. Причина проста - отладку "на другой" платформе не запустить,  т.е. весь этот "кросс" до первого милиционера.
Записан
RSATom
Гость
« Ответ #5 : Март 13, 2015, 12:33 »

Если уже есть виртуальные машины - можно поставить Continuous Integration службу (например Jenkins) на каждой из них (одна будет основной а другие ведомыми) и настроить автоматическую сборку например по появлению нового коммита в репозитории. По завершении сборки бинарники могут выкладываться в единое место.  Собственно это самый правильный, надежный, быстрый и безпроблемный вариант по сравнению с кросскомпиляцией.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Март 13, 2015, 12:40 »

Если уже есть виртуальные машины - можно поставить Continuous Integration службу (например Jenkins) на каждой из них (одна будет основной а другие ведомыми) и настроить автоматическую сборку например по появлению нового коммита в репозитории. По завершении сборки бинарники могут выкладываться в единое место.  Собственно это самый правильный, надежный, быстрый и безпроблемный вариант по сравнению с кросскомпиляцией.
Поддерживаю. Вполне хороший вариант. Если есть возможность держать несколько виртуалок постоянно включенными.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
RSATom
Гость
« Ответ #7 : Март 13, 2015, 12:46 »

Если есть возможность держать несколько виртуалок постоянно включенными.
Теоретически одновременно нужно иметь запущенными только 2 виртуалки - master и одну из slave. Но даже их можно запускать по расписанию (и даже shutdown'ить непосредственно из jenkins Подмигивающий - но сам я никогда такого не делал, но принципиальных ограничений не вижу.
Записан
RSATom
Гость
« Ответ #8 : Март 13, 2015, 12:48 »

а можно и вообще не заморачиваться с master/slave и настроить полноценные CI в каждой из виртуалок и запускать их по очереди.
Записан
merke
Гость
« Ответ #9 : Март 13, 2015, 13:32 »

о спасибо! буду играться с jenkins!
Записан
Nidxogg
Гость
« Ответ #10 : Март 13, 2015, 15:40 »

http://habrahabr.ru/post/198142/
Записан
RSATom
Гость
« Ответ #11 : Март 13, 2015, 16:56 »


еще один довод в пользу виртуальных машин Улыбающийся
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #12 : Март 13, 2015, 19:01 »

Использую Jenkins. Собираю одновременно в восьми разных разных окружениях. Все slave живут на виртуальных машинах. Попутно прикрутил проверку cppcheck.
Очень удобно, рекомендую. Подмигивающий
Если будут вопросы в меру сил смогу подсказать.
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #13 : Март 16, 2015, 13:18 »

объясните - когда выгодно использовать Jenkins ? дела с ним не имел, сейчас делаю сборку linux32 и кросскомпиляцией win32
этого пока хватает или я не знаю какойто выгоды ? )
Записан
RSATom
Гость
« Ответ #14 : Март 16, 2015, 13:38 »

На мой взгляд первая выгода - экономия времени. Сервер сборки сам вытаскивает последнюю версию, сам все конфигурит и собирает, возможно даже сам выкладывает для скачивания. Когда то же самое делается самостоятельно - раз за разом по 5-10 минут, и в итоге набегает много...
Вторая выгода - сервер сборки может выполнять сборку хоть каждую минуту, соответственно и тестировать заинтересованные люди могут тоже всегда самую последнюю версию.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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