Кросс-платформенная сборка - PullRequest
7 голосов
/ 07 октября 2008

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

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

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

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

Ответы [ 8 ]

5 голосов
/ 07 октября 2008

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

4 голосов
/ 07 октября 2008

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

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

  • Файлы сборки написаны на XML и довольно легко пишутся

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

2 голосов
/ 08 октября 2008

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

Я использовал ANT в сочетании с perl около 2 лет, но это привело к полной невозможности сопровождения сценария сборки.

Теперь мы перешли на использование Python, что повышает удобство сопровождения сценариев.

Суть в том, что я не нашел готового инструмента и должен был создать свой собственный. может быть, когда у меня будет какое-то время (2017?), я соберу свои сценарии и раздам ​​их ...

1 голос
/ 19 мая 2009

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

0 голосов
/ 19 мая 2009

Последние 18 месяцев мы работаем в среде Java для Linux, Windows и Mac.

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

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

0 голосов
/ 19 мая 2009

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

0 голосов
/ 05 ноября 2008

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

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

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

0 голосов
/ 07 октября 2008

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

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

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

...