Не думайте, что любой упомянул, что издержки в обработке исключений - берут дополнительные ресурсы, чтобы загрузиться и обработать исключение поэтому, если это не истинное событие остановки уничтожения или процесса приложения (продвижение нанесло бы больше ущерба, чем хороший), я выберу то, что пасовал назад значение, которое могла интерпретировать среда вызова, как это считает целесообразным.
I Предлагаем вам изучить Cruise Control и / или Cruise Control.NET для автоматизации и непрерывной интеграции. Также посмотрите на NAnt и Ant, чтобы узнать о реальных возможностях скрипта сборки. Я использую их везде, куда бы я ни пошел, и почти каждый день, и я еще не сталкивался с чем-либо, что я не мог бы сделать. Иногда мне приходилось создавать свои собственные задачи NAnt ... что я делал на C # ... и все равно никаких проблем!
make, безусловно, может делать все, что вы там просите. Я бы начал с этого; это лучший вариант для переносимости.
Если вы все еще обнаруживаете, что у вас есть проблемы с переносимостью, то автоинструменты часто являются разумным решением. Их достаточно, чтобы настроить, и я предпочитаю избегать их, если я действительно не чувствую, что они мне нужны.
TeamCity , меньше XML-конфигурации по сравнению с круиз-контролем.
Другие также используют yam
, но я очень доволен CMake. Он доступен для упомянутых платформ и предоставляет множество функций для написания сценария полной автоматизации нестандартных процедур сборки (на поддерживаемых платформах).
В моем случае это сборка вычислительного бэкэнда на C, который использует Tcl и Библиотеки GSL в сочетании с интерфейсом на Tcl / Tk и автоматическое создание автономных исполняемых файлов (starpack / tclkit) в Linux, MacOS и Win (MingW и Visual Studio).
Я лично использую CMake + mingw + Qt4 для всех моих кроссплатформенных потребностей, однако я уверен, что довольно легко использовать CMake для swig / mono в Linux и .net в Windows.