2010-05-03 3 views
19

Я хотел создать make-файл. Поэтому я написал инструкции в файле блокнота.
Но какое расширение я должен предоставить при сохранении этого файла?расширение файла makefile

ответ

25

При запуске:

make 

эта программа будет искать файл с именем Makefile в каталоге, а затем выполнить его. Если у вас есть несколько мейкфайлов, то вы можете их выполнить с помощью команды:

make -f MyMakefile 
+29

Итак, чтобы уточнить: Makefiles обычно не имеют расширение, даже не точку в конце. –

+2

Исправьте, или вы можете сохранить с расширением файла и указать его, используя ключ -f. – Anthony

+2

Когда я создаю makefile в блокноте, он сохраняется как текстовый документ и , когда я печатаю make в командной строке, он показывает, что makefile не найден. Когда я создаю make-файл редактором ed, он сохраняется как тип файла, который находится по марку. –

5

От GNU Make documentation

По умолчанию, когда сделай ищет Makefile, он пытается следующий имен, в порядке: GNUmakefile, makefile и Makefile. Как правило, вы должны вызвать ваш Makefile либо makefile или Makefile

Они будут искать, если не указать Makefile с -f флагом (только GNU Make будет искать GNUMakefile, чтобы дать ему только то, что имя если вы знаете, что используете GNU-инструменты)

3

Похоже, вы используете Windows, и в этом случае make-файлы часто имеют суффикс .NMK (потому что они предназначены для использования с NMAKE). В цивилизованном мире, хотя make-файлы обычно не имеют суффикса: makefile или Makefile - это имена канонических файлов.

+1

"цивилизованный" lmao – Ungeheuer

2

Если вам нужно отличить один от другого, и вы управляете конфигурационным файлом, вы должны использовать project.make в качестве имени. Исходя из того, что большинство LSE, в частности gedit, распознают это через .mak. После упаковки или выхода в выделенную папку его можно переименовать в makefile, а полный путь - описать проект. Таким образом, вы можете иметь разные версии. Если ваша работа достаточно сложна для использования make-файла, вы все равно не должны смешивать несколько сборок в одной папке.

0

По умолчанию GNU Make пытается определить некоторые конкретные имена, не используя никаких расширений. Вы можете указать файл с любым именем. Но если вы хотите выделить синтаксис в некоторых редакторах, вы можете использовать расширение.

Есть такие правила признания сделать файлы в редакторе Geany:

Make=*.mak;*.mk;GNUmakefile;makefile;Makefile;makefile.*;Makefile.*; 
Смежные вопросы