Кроссплатформенная среда сборки

Как хорошие разработчики, мы стараемся поддерживать наш код в максимально возможном соответствии со стандартами, чтобы облегчить перенос между платформами. Но какие доступны инструменты, которые помогают нам строить код единообразно на нескольких платформах.

* Семейство nix имеет make, но Windows требует nmake.

Я читал о SCons, но никогда не использовал его в гневе. Какой ваш любимый инструмент сборки, почему вы считаете его эффективным и есть ли какие-либо ограничения (платформы т.е. с плохой поддержкой и т. д.).

Кросс-платформенные IDE также.

Вы имеете в виду конкретный язык?

Henry B 07.10.2008 12:37

Я не понимаю, что вы имеете в виду, когда говорите, что никогда не употребляли бра «в гневе».

grieve 08.11.2008 02:08

@grieve: я прочитал документацию, поиграл с ней, чтобы настроить игрушечные проекты, но никогда не использовал ее в проектах масштаба Enterprise.

Martin York 17.02.2009 01:05

Я почти уверен, что вы можете использовать make на cygwin в Windows.

WhyNotHugo 15.05.2012 07:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
4
5 073
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Я лично использую ant, rake и maven2. Я использовал муравей больше всего и считаю его отличным по нескольким причинам:

  • Поскольку это java, он работает на многих платформах (без изменения скриптов)

  • Файлы сборки написаны в XML, и их довольно легко написать.

  • Для него доступно множество сторонних расширений, и для него легко писать плагины.

Если вы работаете в мире Java, существует довольно много кроссплатформенных инструментов. Apache Ant и Maven - это инструменты сборки, которые будут работать на любой платформе, для которой доступна Java.

Круиз-контроль (инструмент непрерывной интеграции) также работает в Windows и Linux (он также написан на Java).

У меня не было никаких реальных проблем с основными инструментами, единственные проблемы, которые у меня иногда возникали, были связаны с вещами, внешними по отношению к процессу сборки, то есть с публикацией артефактов - это будет варьироваться в зависимости от системы, поэтому я обнаружил, что нет единого способа настройка.

Ответ принят как подходящий

cmake для сред c / C++ хорош. http://www.cmake.org/

Ужасный синтаксис, но он создает собственные файлы проектов Visual Studio без суеты.

Arafangion 27.12.2010 16:15

Хорошо, рекомендация, но без подробностей.

xdhmoore 28.11.2020 02:23

мы занимаемся экстремальной кросс-разработкой, и наш код работает на Linux, Windows CE, Windows 2K, ядре и uCOS-II. поскольку каждая среда использует разную методологию make (например, клиент ядра ядра требует от нас компиляции через графический интерфейс code-warrior).

Я использовал ANT в сочетании с perl около 2 лет, но это привело к тому, что скрипт сборки стал полностью не обслуживаемым.

теперь мы перешли на использование Python, что повысило ремонтопригодность скриптов.

В итоге, я не нашел готового инструмента, и пришлось создать свой собственный. может быть, когда у меня будет время (2017?), я запакую свои скрипты и распространю их ....

Значит, вы никогда не находили продукт CI, который работал бы на нескольких платформах?

Tim 15.05.2009 23:25

В зависимости от размера и характера проекта лучшим выбором может стать самостоятельное катание.

WhyNotHugo 15.05.2012 07:34

Для разработки на C / C++ я обнаружил, что файл запекания работает хорошо. Довольно большой проект wxWidgets, кроссплатформенная кроссплатформенная утилита и библиотека пользовательского интерфейса, использует его для создания файлов сборки.

Bakefile is cross-platform, cross-compiler native makefiles generator. It takes compiler-independent description of build tasks as input and generates native makefile (autoconf's Makefile.in, Visual C++ project, bcc makefile etc.).

Bakefile's task is to generate native makefiles, so that people can keep using their favorite tools. There are other cross-platform make solutions, but they either aren't native and require the user to use unfamiliar tools (Boost.Build) or they are too limited (qmake).

Вы также можете использовать gmake в Windows с cygwin / minGW или создавать свои файлы для Windows в Linux. http://cdtdoug.blogspot.com/2009/05/mingw-cross-for-linux.html

Существуют такие инструменты, как Opus Make или MKS Toolkit, которые предлагают мультиплатформенность и поддержку. Если у вас есть существующая кодовая база скрипта make, может быть проще перейти на один из них. Я подозреваю, что вы можете охотиться за подобными инструментами в рекламе журнала DDJ.

Мы использовали среду Java для Linux, Windows и Mac в течение последних 18 месяцев.

  • Maven 2 управляет нашими сборками, здесь довольно легко добиться согласованности. Там, где плагины M2 не решаются ступить, мы используем небольшие скрипты Ant.
  • С точки зрения IDE мы используем Eclipse и IDEA - обе, конечно же, мультиплатформенные.
  • Тестирование - JUnit, Fitnesse, Fest - все прекрасно мультиплатформенное.
  • Скрипты выпуска написаны на Ruby. С Windows здесь немного больше проблем, но функция преобразования путей по мере необходимости обычно помогает.
  • TeamCity выполняет CI. Мы фактически перенесли это с Windows на Linux и не обнаружили никаких ошибок, очень хороший пакет.

Некоторое время мы действительно использовали GWT, и это действительно причиняло нам много боли. Будьте осторожны, если вы так качаетесь.

Не могли бы вы подробнее остановиться на вопросах, касающихся gwt и кроссплатформенной компиляции?

WhyNotHugo 15.05.2012 07:34

Другие вопросы по теме