какой-нибудь хороший инструмент для создания make-файлов?[закрыто]

StackOverflow https://stackoverflow.com/questions/9589

Вопрос

Я ищу инструмент, который может генерировать 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.Возможно, сейчас он не настолько зрел для больших приложений, но я буду продолжать работать над ним, чтобы сделать его лучше.Пользователям не нужно редактировать какой-либо файл конфигурации для создания программного обеспечения, или, по крайней мере, так должно быть.Кривая обучения должна быть сведена к минимуму.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top