любой хороший инструмент для генерации makefile?

Я ищу инструмент, который может генерировать makefile для проекта C/C++ для разных компиляторов (gcc, microsoft vc++, borland и т. д.) и разных платформ (Win, Linux, Mac).


person Serge    schedule 13.08.2008    source источник
comment
@LightnessRacesinOrbit извините.   -  person Onur A.    schedule 13.03.2018


Ответы (10)


Другие предложения, которые вы можете рассмотреть:

  • Scons — это кроссплатформенная кросс-компиляторная библиотека сборки, использующая скрипты Python для систем сборки. Используется в различных крупных проектах и ​​работает очень хорошо.

  • Если вы используете Qt, QMake также является хорошей системой сборки.

  • CMake тоже очень хорош.

  • Наконец, Если ничего не помогло...

person Thomi    schedule 15.08.2008

Пробовали ли вы использовать автоматический генератор 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 
person prakash    schedule 13.08.2008

Раньше я использовал Bakefile с некоторым успехом. Это довольно просто и, кажется, работает хорошо.

person Imbue    schedule 27.08.2008

CMake — это единственный инструмент, который может фактически генерировать настоящие проекты Visual Studio (т. е. не проекты Makefile, вызывающие внешний инструмент), и который автоматически воссоздает проекты при изменении входного файла сборки (CMakeLists.txt).

Проблемы с производительностью SCons хорошо известны и активно обсуждаются в списках рассылки SCons.

person JesperE    schedule 17.09.2008

Я бы проголосовал за OMake. Он исправляет все жалобы, которые у меня были с GNU make:

  • это полноценный язык.
  • использует MD5 вместо временных меток.
  • предоставляет минимальную оболочку, которая реализует самые полезные команды unix на всех платформах: find, sed, awk и т. д.
  • работает с путями в стиле unix или dos.
  • обширно задокументировано.
  • поддерживает параллельные сборки.
  • быстро.
person bltxd    schedule 23.10.2008

Автоматическое создание (M|m)akefiles заставляет меня беспокоиться о том, что вы пытаетесь здесь сделать.

Вы понимаете, что происходит под одеялом, когда вы печатаете make? Или гмейк? Я спрашиваю только потому, что если вы этого не сделаете, когда что-то сломается, например, новые изменения кода не будут включены в сборку, у вас возникнут трудности с попыткой работать с тем, что произошло.

Чтобы начать понимать make, могу ли я предложить прочитать "Управление проектами с помощью GNU Make", Роберт Мекленберг. В первых главах рассказывается, как работает make. Ознакомиться с тем фактом, что make — это обратная цепочка, — одна из самых важных вещей, которые вы можете сделать.

Если вы этого не сделаете, и ваша система будет работать, то вы будете, используя термин The Pragmatic Programmers, "программирование по совпадению". (-:

Кстати, отличные статьи доступны на их сайте! И я не связан с ними. YMMV. Яда-яда...

person Rob Wells    schedule 27.08.2008

Я также второй CMake. Я уже давно использую его в мультиплатформенном проекте и очень им доволен.

person grosauro    schedule 20.08.2008

Один из вопросов, который следует учитывать, - хотите ли вы создателя «makefile» или заменяющую систему сборки? Проблема с заменой систем сборки заключается в том, что вы обычно не получаете хорошей интеграции IDE для платформ, пользователи которых этого ожидают (Visual C++). Если вам нужен создатель make-файла вместо замены системы сборки, взгляните на MPC. Это бесплатно и с открытым исходным кодом.

person Adam Mitz    schedule 23.08.2008

Недавно к списку замен make добавился waf. Судя по личному опыту, SCONS отлично справляется со своей задачей.

person Gabi Davar    schedule 18.08.2011

Я не знаю, есть ли у вас еще интерес к этому вопросу. Я работаю над аналогичной проекцией автоматического генератора Makefile под названием CodeMate, разработанной с использованием Ruby. Возможно, сейчас он не настолько зрел для большого приложения, но я буду продолжать работать над ним, чтобы сделать его лучше. Пользователям не нужно редактировать какой-либо файл конфигурации для сборки программного обеспечения, или, по крайней мере, это предполагается. Кривая обучения должна быть сведена к минимуму.

person Li Dong    schedule 25.01.2012
comment
Еще одна мертвая ссылка SO! Я вручную зашел на вашу страницу GitHub, и то, что я вижу там как CodeMate, — это сборка только для Fortran. Вы создали другой проект с таким же названием? Это похоже, что вы имели в виду именно это. - person kirbyfan64sos; 06.03.2015