Как хорошие разработчики, мы стараемся поддерживать наш код в максимально возможном соответствии со стандартами, чтобы облегчить перенос между платформами. Но какие доступны инструменты, которые помогают нам строить код единообразно на нескольких платформах.
* Семейство nix имеет make, но Windows требует nmake.
Я читал о SCons, но никогда не использовал его в гневе. Какой ваш любимый инструмент сборки, почему вы считаете его эффективным и есть ли какие-либо ограничения (платформы т.е. с плохой поддержкой и т. д.).
Кросс-платформенные IDE также.
Я не понимаю, что вы имеете в виду, когда говорите, что никогда не употребляли бра «в гневе».
@grieve: я прочитал документацию, поиграл с ней, чтобы настроить игрушечные проекты, но никогда не использовал ее в проектах масштаба Enterprise.
Я почти уверен, что вы можете использовать make на cygwin в Windows.





Я лично использую ant, rake и maven2. Я использовал муравей больше всего и считаю его отличным по нескольким причинам:
Поскольку это java, он работает на многих платформах (без изменения скриптов)
Файлы сборки написаны в XML, и их довольно легко написать.
Для него доступно множество сторонних расширений, и для него легко писать плагины.
Если вы работаете в мире Java, существует довольно много кроссплатформенных инструментов. Apache Ant и Maven - это инструменты сборки, которые будут работать на любой платформе, для которой доступна Java.
Круиз-контроль (инструмент непрерывной интеграции) также работает в Windows и Linux (он также написан на Java).
У меня не было никаких реальных проблем с основными инструментами, единственные проблемы, которые у меня иногда возникали, были связаны с вещами, внешними по отношению к процессу сборки, то есть с публикацией артефактов - это будет варьироваться в зависимости от системы, поэтому я обнаружил, что нет единого способа настройка.
cmake для сред c / C++ хорош. http://www.cmake.org/
Ужасный синтаксис, но он создает собственные файлы проектов Visual Studio без суеты.
Хорошо, рекомендация, но без подробностей.
мы занимаемся экстремальной кросс-разработкой, и наш код работает на Linux, Windows CE, Windows 2K, ядре и uCOS-II. поскольку каждая среда использует разную методологию make (например, клиент ядра ядра требует от нас компиляции через графический интерфейс code-warrior).
Я использовал ANT в сочетании с perl около 2 лет, но это привело к тому, что скрипт сборки стал полностью не обслуживаемым.
теперь мы перешли на использование Python, что повысило ремонтопригодность скриптов.
В итоге, я не нашел готового инструмента, и пришлось создать свой собственный. может быть, когда у меня будет время (2017?), я запакую свои скрипты и распространю их ....
Значит, вы никогда не находили продукт CI, который работал бы на нескольких платформах?
В зависимости от размера и характера проекта лучшим выбором может стать самостоятельное катание.
Для разработки на 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 месяцев.
Некоторое время мы действительно использовали GWT, и это действительно причиняло нам много боли. Будьте осторожны, если вы так качаетесь.
Не могли бы вы подробнее остановиться на вопросах, касающихся gwt и кроссплатформенной компиляции?
Вы имеете в виду конкретный язык?