Я хотел бы знать, есть ли способ изменить правила, применяемые автоматически, make, когда makefile нет. Например, если вы напишите make foo в каталоге, содержащем файл с именем foo.cpp он выполнит g++ foo.cpp -o foo даже если в каталоге нет makefile .

Я хотел бы изменить их в соответствии со своими потребностями, скажем что-то вроде g++ foo.cpp -o foo --std=c++11 -W -O2 -I .... но также добавить новые правила для других расширений, таких как .c, .java или .tex

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

Я работаю в основном с Mingw и Cygwin.

1 ответ1

1

Согласно инструкции, правило на самом деле:

no создается автоматически из n.cc , n.cpp или n.C с рецептом вида ' $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c '. Мы рекомендуем вам использовать суффикс « .cc » для исходных файлов C++ вместо « .C '.

Таким образом, уходит либо настройка переменных среды (например, в ~/.bashrc), либо просто создание Makefile, который переопределяет это правило.

Используйте make -p в каталоге без Makefile, чтобы узнать все настройки по умолчанию и встроенные правила.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .