какой-нибудь хороший инструмент для создания make-файлов?[закрыто]
-
08-06-2019 - |
Вопрос
Я ищу инструмент, который может генерировать make-файл для проекта C/C++ для разных компиляторов (gcc, microsoft vc++, borland и т. д.) и разных платформ (Win, Linux, Mac).
Решение
Другие предложения, которые вы можете рассмотреть:
Сконы — это кросс-платформенная, кросс-компиляторная библиотека сборки, использующая скрипты Python для систем сборки.Используется в различных крупных проектах и работает очень хорошо.
Если вы используете Qt, QMake это тоже хорошая система сборки.
CMake тоже довольно сладкий.
Окончательно, Если все остальное не удается...
Другие советы
Попытался ли ты Автоматический генератор Makefile?
Он поддерживает следующие компиляторы:
Borland 3.1 Borland 5.0 Borland 5.0, 16 bit Borland 5.5 Borland 5.6 Borland 5.8 CC Gnu g++ Gnu g++, dynamic library Intel 5, 6, 7 for Linux Intel 5, 6, 7 for Linux, dynamic library Intel 5, 6, 7 for windows Intel 8,9,10 for Linux Intel 8,9,10 for Linux, dynamic library Intel 8,9 for windows Intel 10 for windows Visual C++ 5 Visual C++ 6, 7, 7.1 Visual C++ 8 Open Watcom Watcom 10A Watcom 10A, 16 bit
я использовал Файл запекания раньше с некоторым успехом.Это довольно просто и, кажется, работает хорошо.
CMake — единственный инструмент, который действительно может создавать настоящие проекты Visual Studio (т.а не проекты «Makefile», которые вызывают внешний инструмент) и которые автоматически воссоздают проекты при изменении входного файла сборки (CMakeLists.txt).
Проблемы производительности SCons хорошо известны и являются широко обсуждаемой темой в списках рассылки SCons.
я бы проголосовал за OMake.Он исправляет все жалобы, которые у меня были с GNU make:
- это полноценный язык.
- использует MD5 вместо меток времени.
- предоставляет минимальную оболочку, которая реализует наиболее полезные команды Unix на всех платформах:find, sed, awk и т. д.
- работает с путями в стиле unix или dos.
- подробно документировано.
- поддерживает параллельные сборки.
- быстрый.
Автоматическое создание (M|m)ake-файлов заставляет меня беспокоиться о том, что вы здесь пытаетесь сделать.
Вы понимаете, что происходит под одеялом, когда вы печатаете make?Или гмейк?Я спрашиваю только потому, что если вы этого не сделаете, когда что-то сломается, например, новые изменения кода не будут включены в сборку, у вас возникнут трудности с попыткой работать с тем, что произошло.
Чтобы начать понимать make, могу ли я предложить прочитать "Управление проектами с помощью GNU Make» Роберта Мекленберга.В первых главах рассказывается, как работает make.Донести до вас тот факт, что make — это обратная цепочка, — это одна из самых важных вещей, которые вы можете сделать.
Если вы этого не сделаете, и ваша система будет работать, то, используя термин «Прагматичных программистов», вы будете «программирование по совпадению". (-:
Кстати, на их сайте доступны отличные статьи!И я с ними не связан.ЮММВ.Яда-яда...
Я также поддержу CMake.Я использую его уже довольно давно в мультиплатформенном проекте и очень доволен.
Один вопрос, который следует учитывать: нужен ли вам создатель «makefile» или заменяющая система сборки?Проблема с заменяющими системами сборки заключается в том, что обычно вы не получаете хорошей интеграции IDE для платформ, пользователи которых ожидают этого (Visual C++).Если вам нужен создатель make-файла вместо заменяющей системы сборки, взгляните на ПДК.Это бесплатно и с открытым исходным кодом.
Недавним дополнением к списку заменителей является ваф.Судя по личному опыту, SCONS справляется со своей задачей довольно хорошо.
Я не знаю, есть ли у вас интерес к этому вопросу еще.Я работаю над аналогичной проекцией автогенератора Makefile под названием КодМейт, разработанный с использованием Ruby.Возможно, сейчас он не настолько зрел для больших приложений, но я буду продолжать работать над ним, чтобы сделать его лучше.Пользователям не нужно редактировать какой-либо файл конфигурации для создания программного обеспечения, или, по крайней мере, так должно быть.Кривая обучения должна быть сведена к минимуму.