Russian Qt Forum
Ноябрь 24, 2024, 11:37
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Кросс компиляция
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Кросс компиляция (Прочитано 9861 раз)
merke
Гость
Кросс компиляция
«
:
Март 13, 2015, 11:22 »
Всем привет!
Давно интересует один момент. Если ли готовые инстурменты позволяющие собирать исходники сразу под несколько ОС? Допустим есть исходники, мне нужно скомпилить под Win32-64, Linux32-64 у меня есть 4 виртуальные машины для этого и есть некий инструмент в который я скинул исходники, а в результате получил 4 исполняемых файла. Это бы в разы ускорило время разработки. Писать подобное нету времени. Может кто встречался с таким чудом?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Кросс компиляция
«
Ответ #1 :
Март 13, 2015, 11:34 »
Под Линухой можно компилять виндовые бинари.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
merke
Гость
Re: Кросс компиляция
«
Ответ #2 :
Март 13, 2015, 11:36 »
пробовал настроить, но блин после такой компиляции приходится в проект подкидывать еще и библиотеки msvc.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Кросс компиляция
«
Ответ #3 :
Март 13, 2015, 11:39 »
Я пару раз пытался под Гентой настроить, но так и не получилось.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Кросс компиляция
«
Ответ #4 :
Март 13, 2015, 11:40 »
Цитата: Александр от Март 13, 2015, 11:22
Писать подобное нету времени.
Цитата: Александр от Март 13, 2015, 11:22
Может кто встречался с таким чудом?
Много лет назад CodeWarrior умел компилить под MacOS и Вындоуз. Сразу 2 исполняемых файла правда не получалось, надо было переставить таргет - ну не суть. Попробовав неск раз отказался, вернулся к обычному перетаскиванию исходников и.т.п. Причина проста - отладку "на другой" платформе не запустить, т.е. весь этот "кросс" до первого милиционера.
Записан
RSATom
Гость
Re: Кросс компиляция
«
Ответ #5 :
Март 13, 2015, 12:33 »
Если уже есть виртуальные машины - можно поставить Continuous Integration службу (например Jenkins) на каждой из них (одна будет основной а другие ведомыми) и настроить автоматическую сборку например по появлению нового коммита в репозитории. По завершении сборки бинарники могут выкладываться в единое место. Собственно это самый правильный, надежный, быстрый и безпроблемный вариант по сравнению с кросскомпиляцией.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Кросс компиляция
«
Ответ #6 :
Март 13, 2015, 12:40 »
Цитата: RSATom от Март 13, 2015, 12:33
Если уже есть виртуальные машины - можно поставить Continuous Integration службу (например Jenkins) на каждой из них (одна будет основной а другие ведомыми) и настроить автоматическую сборку например по появлению нового коммита в репозитории. По завершении сборки бинарники могут выкладываться в единое место. Собственно это самый правильный, надежный, быстрый и безпроблемный вариант по сравнению с кросскомпиляцией.
Поддерживаю. Вполне хороший вариант. Если есть возможность держать несколько виртуалок постоянно включенными.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
RSATom
Гость
Re: Кросс компиляция
«
Ответ #7 :
Март 13, 2015, 12:46 »
Цитата: Пантер от Март 13, 2015, 12:40
Если есть возможность держать несколько виртуалок постоянно включенными.
Теоретически одновременно нужно иметь запущенными только 2 виртуалки - master и одну из slave. Но даже их можно запускать по расписанию (и даже shutdown'ить непосредственно из jenkins
- но сам я никогда такого не делал, но принципиальных ограничений не вижу.
Записан
RSATom
Гость
Re: Кросс компиляция
«
Ответ #8 :
Март 13, 2015, 12:48 »
а можно и вообще не заморачиваться с master/slave и настроить полноценные CI в каждой из виртуалок и запускать их по очереди.
Записан
merke
Гость
Re: Кросс компиляция
«
Ответ #9 :
Март 13, 2015, 13:32 »
о спасибо! буду играться с jenkins!
Записан
Nidxogg
Гость
Re: Кросс компиляция
«
Ответ #10 :
Март 13, 2015, 15:40 »
http://habrahabr.ru/post/198142/
Записан
RSATom
Гость
Re: Кросс компиляция
«
Ответ #11 :
Март 13, 2015, 16:56 »
Цитата: Nidxogg от Март 13, 2015, 15:40
http://habrahabr.ru/post/198142/
еще один довод в пользу виртуальных машин
Записан
Termit
Самовар
Offline
Сообщений: 144
Re: Кросс компиляция
«
Ответ #12 :
Март 13, 2015, 19:01 »
Использую Jenkins. Собираю одновременно в восьми разных разных окружениях. Все slave живут на виртуальных машинах. Попутно прикрутил проверку cppcheck.
Очень удобно, рекомендую.
Если будут вопросы в меру сил смогу подсказать.
Записан
Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
qate
Супер
Offline
Сообщений: 1177
Re: Кросс компиляция
«
Ответ #13 :
Март 16, 2015, 13:18 »
объясните - когда выгодно использовать Jenkins ? дела с ним не имел, сейчас делаю сборку linux32 и кросскомпиляцией win32
этого пока хватает или я не знаю какойто выгоды ? )
Записан
RSATom
Гость
Re: Кросс компиляция
«
Ответ #14 :
Март 16, 2015, 13:38 »
На мой взгляд первая выгода - экономия времени. Сервер сборки сам вытаскивает последнюю версию, сам все конфигурит и собирает, возможно даже сам выкладывает для скачивания. Когда то же самое делается самостоятельно - раз за разом по 5-10 минут, и в итоге набегает много...
Вторая выгода - сервер сборки может выполнять сборку хоть каждую минуту, соответственно и тестировать заинтересованные люди могут тоже всегда самую последнюю версию.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...