Scons, make, jam, ants, autotools и т. Д. И файлы проекта? [закрыто]

Я хотел получить ваши мысли. Я вижу такие системы сборки, как scons, make, jam, ants, autotools.

Почему они существуют? они что-то вроде кросс-платформенных «файлов проекта»? Рассматривают ли они другую потребность? для меня .NET имеет почти стандартный файл проекта (xbuild on mono может создавать некоторые из моих проектов, созданных msvc)

Я видел makefile в каждом каталоге и подкаталоге. На ваш взгляд, это «неправильно»? Моя кишка говорит, что если это файл проекта, который позволяет вам передать несколько параметров для полной сборки, все должно быть в одном месте (даже если его несколько файлов).

Более важно, почему все эти инструменты существуют?

1 голос | спросил user2528 10 AMpSun, 10 Apr 2011 07:44:59 +040044Sunday 2011, 07:44:59

1 ответ


3

Самая большая проблема, которую пытаются решить эти инструменты, - проблема переносимости.

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

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

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

Но не все инструменты сборки становятся равными. Некоторые из них более подходят для одной группы языков и совершенно неуместны для другого. Файлы проектов .NET прекрасно подходят для проектов .NET и Visual Studio, но они совершенно неуместны для создания C и C ++ на других платформах.


Чтобы ответить на ваш другой вопрос о make-файлах: есть некоторые дебаты по этой теме. Питер Миллер убежден, что это плохая практика , но многие другие разработчики, похоже, не согласны , Лично я не заинтересован в этом - я просто позволю своему инструменту выбора (CMake) позаботиться об этом.

ответил greyfade 10 AMpSun, 10 Apr 2011 09:38:58 +040038Sunday 2011, 09:38:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132