упаковка приложений C ++ на различных платформах

Я занимался различными проектами на C ++ — несколько на Qt — и хотя я всегда использую библиотеки, которые должны быть кроссплатформенными (Qt, OpenGL и т. Д.), Я не знаю каких-либо инструментов для их создания. кодовая база на различных платформах, которые существуют для мобильных устройств. Существуют ли такие сервисы, где у меня может быть базовая структура сборки, я делаю свою разработку вокруг нее и отправляю ее в какой-то сервис, который собирает его для windows, mac и пары linux-дистрибутивов?

2

Решение

Надеюсь, мои разговоры имеют смысл, а не просто сумасшедшие разговоры. 🙂

Я думаю, потому что многие библиотеки полагаются на определенные потоки ОС, существуют очень сильные ограничения.

Большинство проектов, которые используют сторонние библиотеки, и если все эти библиотеки конкретно кроссплатформенный, проект больше не является легкой сборкой для кроссплатформенности.

Самое близкое было бы, если бы вы сказали: «Если вы ссылаетесь исключительно на стандартные библиотеки и / или Boost, и / или Qt, и / или <insert name of cross platform library>затем выполним упаковку для всех настольных платформ в качестве службы.

Многие языки сценариев стремятся к этому, так как большинство их модулей и сборок ведут себя одинаково кроссплатформенно. Но я все еще иногда нахожу проект с открытым исходным кодом, основанный на общем языке сценариев, который говорит «только для Unix» или «только для Windows». Обычно я думаю, что это потому, что раздражает портирование потоков, установленных между двумя … или кто-то в проекте — твердолобый <insert name of OS> фанат и думает, что кто-то хочет сделать something на другой ОС это безумие. Только когда сообщество, стоящее за конкретным инструментом с открытым исходным кодом, становится достаточно большим и достаточно разнообразным в предпочтениях ОС, изменения происходят, и они переносятся и поддерживаются для нескольких дистрибутивов.

KDE находится в бета-фазе поддержки всех своих приложений на Windows.

wine заставляет людей работать с рядом оконных программ при запуске их в linux.

cygwin получает людей, которым нужны команды linux, доступные на их машине с Windows.

Я думаю, что некоторые из сервисов, которые находятся в рамках этого понятия, не работают на C ++, а вместо этого обслуживают SaaS, Программное обеспечение как Сервис. Они настраивают сервер для запуска вашей программы и веб-сайт, который обслуживает ее до браузера, а затем у вас есть кроссплатформенная программа. И затем есть Java, которая как бы в том же направлении …

Надеюсь, это поможет.

1

Другие решения

Я не думаю, что есть такая вещь, которая создает ваш код на C ++ для Windows, Mac и Linux. Вы можете использовать кросс-платформенные библиотеки, такие как Qt, которая позволяет вам компилировать ваш код на различных платформах, включая мобильные. Но для этого вы должны скомпилировать свой код на целевой платформе или установить необходимые цепочки инструментов и выполнить кросс-компиляцию вашего кода. Но всю работу, включая установку цепочек инструментов и предоставление соответствующих настроек, следует выполнять вручную.

Например, вы должны использовать MinGW для компиляции для Windows на Linux или cygwin для компиляции для Linux на Windows, которая требует большой работы. Также это зависит от вашей хост-платформы, на которой вы хотите кросс-компиляцию для целевой платформы. Например, если вы хотите выполнить кросс-компиляцию для Windows на Mac, настройки рекламы цепочек инструментов отличаются от кросс-компиляции для Linux или Mac в Windows.

0

По вопросам рекламы [email protected]