Как вы собираете кросс-платформенный QT-проект?
От: Shmj Ниоткуда  
Дата: 03.01.23 01:09
Оценка:
Как лучше сделать, когда нужно и Win и Ubuntu и Mac?

Скажем, разработка под Win. А потом просто скриптами на 3 отдельных системах?
Re: Как вы собираете кросс-платформенный QT-проект?
От: DiPaolo Россия  
Дата: 03.01.23 05:16
Оценка: +5
На CMake.
Патриот здравого смысла
Re: Как вы собираете кросс-платформенный QT-проект?
От: small_cat Россия  
Дата: 03.01.23 07:54
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Как лучше сделать, когда нужно и Win и Ubuntu и Mac?


S>Скажем, разработка под Win. А потом просто скриптами на 3 отдельных системах?


Если изначально использовать только кросс-платформенные возможности, то проблемы обычно возникают только на уровне линковки.
Для этого можно использовать в pro-файле секции типа win32-g++:{, в которых прописывать системно-зависимые include и прочее.

Например, у меня возникали нюансы с библиотеками boost и ncurses.
- Простите, профессор, не пса, а когда он уже был человеком.
— То-есть он говорил? Это еще не значит быть человеком. (с) Булгаков
Re[2]: Как вы собираете кросс-платформенный QT-проект?
От: Shmj Ниоткуда  
Дата: 03.01.23 08:03
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>На CMake.


CMake же не сможет для MacOS собрать на Windows.
Re[3]: Как вы собираете кросс-платформенный QT-проект?
От: Skorodum Россия  
Дата: 03.01.23 08:08
Оценка:
Здравствуйте, Shmj, Вы писали:

S>CMake же не сможет для MacOS собрать на Windows.

1. Почему не сможет?
2. Что сможет?

Для MacOS собираем на MacOS (в Azure).
Re[2]: Как вы собираете кросс-платформенный QT-проект?
От: Skorodum Россия  
Дата: 03.01.23 08:09
Оценка:
Здравствуйте, small_cat, Вы писали:


_>Если изначально использовать только кросс-платформенные возможности, то проблемы обычно возникают только на уровне линковки.

_>Для этого можно использовать в pro-файле секции типа win32-g++:{, в которых прописывать системно-зависимые include и прочее.
Можно использовать qmake, но даже Qt перешла с CMake.
Re[4]: Как вы собираете кросс-платформенный QT-проект?
От: Shmj Ниоткуда  
Дата: 03.01.23 08:34
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>>CMake же не сможет для MacOS собрать на Windows.

S>1. Почему не сможет?
S>2. Что сможет?

Не знаю что сможет. Из Линукса можно для Windows собрать. И из Windows для Linux. А для мака только на маке вроде.

S>Для MacOS собираем на MacOS (в Azure).


Ну вот... В этом и состоит мой вопрос. Благодарю.
Re[5]: Как вы собираете кросс-платформенный QT-проект?
От: Skorodum Россия  
Дата: 03.01.23 08:50
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Не знаю что сможет. Из Линукса можно для Windows собрать. И из Windows для Linux. А для мака только на маке вроде.

Ну т.е. дело не в системах сборки, а в политике яблока.

S>Ну вот... В этом и состоит мой вопрос. Благодарю.

Тогда стоит уточнить, что мы там для всего собираем: вин, линух, мак. Все на СMake. Сама разработка преимущественно на винде, на маке все практически из коробки работает.
Re[6]: Как вы собираете кросс-платформенный QT-проект?
От: Shmj Ниоткуда  
Дата: 03.01.23 08:58
Оценка:
Здравствуйте, Skorodum, Вы писали:

S>>Ну вот... В этом и состоит мой вопрос. Благодарю.

S>Тогда стоит уточнить, что мы там для всего собираем: вин, линух, мак. Все на СMake. Сама разработка преимущественно на винде, на маке все практически из коробки работает.

Еще просьба уточнить, пожалуйста. Вы используете выделенную машину с MacOs? Или их система сборки такое умеет?
Отредактировано 03.01.2023 8:59 Shmj . Предыдущая версия .
Re[3]: Как вы собираете кросс-платформенный QT-проект?
От: DiPaolo Россия  
Дата: 03.01.23 09:17
Оценка:
S>CMake же не сможет для MacOS собрать на Windows.

У меня нативно собирается под каждую платформу либо на отдельном железе, либо в виртуалке, либо в докере. То есть несколько физических машин.
Патриот здравого смысла
Re[7]: Как вы собираете кросс-платформенный QT-проект?
От: Skorodum Россия  
Дата: 03.01.23 09:19
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Еще просьба уточнить, пожалуйста. Вы используете выделенную машину с MacOs? Или их система сборки такое умеет?

Виртуальные машины.
Локально для отладки реальный мак изредка приходиться использовать.
Re[6]: Как вы собираете кросс-платформенный QT-проект?
От: zx zpectrum  
Дата: 03.02.23 02:58
Оценка:
S>>Не знаю что сможет. Из Линукса можно для Windows собрать. И из Windows для Linux. А для мака только на маке вроде.
S>Ну т.е. дело не в системах сборки, а в политике яблока.
Не в политике дело, а в том, что команда Qt не осилила сборку под Мак без macOS. Нет в этом деле никакой магии и политики — есть лишь множество мелких неудобств, которые при большом желании и упорстве преодолимы. Кросс-тулчейн Theos умеет даже под iOS собирать из под Линукса и Винды.

Ну и чтобы два раза не вставать: платный Мак в Ажуре тоже не является необходимостью. Прекрасно можно поднять на qemu/kvm и собирать оттуда. Другое дело, что 3D–ускорение в этом раскладе не заведется, и если продукт его использует, то потестировать нормально не получится.
Re[7]: Как вы собираете кросс-платформенный QT-проект?
От: Skorodum Россия  
Дата: 03.02.23 08:58
Оценка:
Здравствуйте, zx zpectrum, Вы писали:

ZZ>Не в политике дело, а в том, что команда Qt не осилила сборку под Мак без macOS. Нет в этом деле никакой магии и политики — есть лишь множество мелких неудобств, которые при большом желании и упорстве преодолимы.

1. Для начала надо ответить на вопрос зачем кросс-платформенная сборка под Мак в принципе нужна и что по этому поводу говорит Apple. Кросс-платформенная сборка нужна в первую очередь для встраиваемых систем.
2. Qt не предоставляет сборки для кросс-компиляции под десктоп в принципе. И это понятно.

ZZ>Кросс-тулчейн Theos умеет даже под iOS собирать из под Линукса и Винды.

И что по этому поводу говорит Apple, можно такое приложение разместить в их магазине?
ЕМНИП, у них официальная политика под iOS сборка только на MacOS.

ZZ>Ну и чтобы два раза не вставать: платный Мак в Ажуре тоже не является необходимостью. Прекрасно можно поднять на qemu/kvm и собирать оттуда.

Для фрилансера и локальный qemu/kvm со скриптами подойдет, для промышленной разработки — нет.

ZZ>Другое дело, что 3D–ускорение в этом раскладе не заведется, и если продукт его использует, то потестировать нормально не получится.

Да много чего не получиться. Сравнивать локальный qemu/kvm со всей инфраструктурой Azure это не смешно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.