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

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

* В семействе nix есть make, но для Windows требуется nmake.

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

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


person Martin York    schedule 07.10.2008    source источник
comment
Вы имеете в виду конкретный язык?   -  person Henry B    schedule 07.10.2008
comment
Я не понимаю, что вы имеете в виду, когда говорите, что никогда не употребляли бра в гневе.   -  person grieve    schedule 08.11.2008
comment
@grieve: Я прочитал документацию, поиграл с ней, чтобы настроить игрушечные проекты, но никогда не использовал ее в проектах масштаба Enterprise.   -  person Martin York    schedule 17.02.2009
comment
Я почти уверен, что вы можете использовать make на cygwin в Windows.   -  person WhyNotHugo    schedule 15.05.2012


Ответы (8)


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

person user24560    schedule 07.10.2008
comment
Ужасный синтаксис, но он создает файлы проектов Visual Studio без суеты. - person Arafangion; 27.12.2010
comment
Хорошо, рекомендация, но без подробностей. - person xdhmoore; 28.11.2020

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

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

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

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

person Josh Moore    schedule 07.10.2008

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

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

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

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

person Noam    schedule 08.10.2008
comment
Значит, вы никогда не находили продукт CI, который работал бы на нескольких платформах? - person Tim; 15.05.2009
comment
В зависимости от размера и характера проекта, прокатка собственного объекта может быть вашим лучшим выбором. - person WhyNotHugo; 15.05.2012

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

person robert.berger    schedule 19.05.2009

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

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

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

person Community    schedule 07.10.2008

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

Bakefile - это кроссплатформенный генератор сборочных файлов для кросс-компиляторов. Он принимает независимое от компилятора описание задач сборки в качестве входных данных и генерирует собственный make-файл (Makefile.in autoconf, проект Visual C ++, make-файл bcc и т. Д.).

Задача Bakefile - создавать собственные make-файлы, чтобы люди могли продолжать использовать свои любимые инструменты. Существуют и другие кроссплатформенные решения make, но они либо не являются родными и требуют от пользователя использования незнакомых инструментов (Boost.Build), либо они слишком ограничены (qmake).

person Zach Burlingame    schedule 05.11.2008

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

person Giulio Vian    schedule 19.05.2009

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

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

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

person James    schedule 19.05.2009
comment
Не могли бы вы подробнее остановиться на вопросах, касающихся gwt и кроссплатформенной компиляции? - person WhyNotHugo; 15.05.2012