Что такое make-файл и как мы можем его создать?

8

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

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

Давайте предположим, что мой рабочий каталог печати /home/george/Documents

Я хочу создать make-файл, который делает следующее:

  1. Появится сообщение «Привет, сегодня солнце». Солнце приходит с воскресенья. Поэтому я должен использовать dateкоманду в этом файле make для отображения только первых трех букв.
  2. сжать /etc/hostsв /tmpиспользовании gzip(наверное здесь должно быть что-то вроде

    gzip -c SOURCE DESTINATION # ?? 
    

ура

Адриан Джордж
источник
Makefiles предназначены для выборочного создания устаревших объектных файлов из исходных файлов в процессе разработки программного обеспечения. Это не имеет ничего общего с тем, что вы будете делать.
энзотиб

Ответы:

8

чтобы ответить на ваш вопрос, я не могу дать вам однострочный / параграфный ответ, потому что он касается каждой вещи. Прочитайте первую ссылку, в которой есть все, что вам нужно, с примерами.

Хороший учебник, который может объяснить все о марке

rɑːdʒɑ
источник
3
первая ссылка должна быть: mrbook.org/blog/tutorials/make
Shahryar Saljoughi
Учебник mrbook.org/blog/tutorials/make использует устаревший код C ++ и больше не компилируется. Смотрите этот вопрос, чтобы понять и исправить.
Дэвид
Ссылки мертвы.
ComputerScientist
2

Makefile используется как «карта» для компиляции C-программ. Они работают с makeутилитой, описывают, как программа должна быть скомпилирована / скомпонована для правильной работы после того, как она превращена в исполняемый файл. Для глобальных задач UNIX / shell вы ищете сценарии оболочки, а не make-файлы :)

См. Http://en.wikipedia.org/wiki/Make_(software)#Makefiles для получения дополнительной информации о make-файлах и http://en.wikipedia.org/wiki/Shell_script для поиска сценариев оболочки.

Базовый сценарий оболочки для того, что вы пытаетесь сделать, может быть:

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

Храните это в файл, и выполнить его с помощью оболочки командной строки ( bash myscript.sh, sh myscript.sh, ...). Вы также можете сделать исполняемый скрипт используя:

chmod +x myscript.sh

А затем выполните его с вашим интерпретатором по умолчанию с помощью:

./myscript.sh
Джон У. Смит
источник
1
Я пытаюсь создать make-файл, который делает это не сценарий оболочки.
Адриан Джордж
Затем вы должны разработать C-программу, которая делает это, и скомпилировать ее, используя Makefile, если хотите. Make-файлы не выполняют задачи Linux, они управляют компиляцией программ на C, это совершенно другое.
Джон У. С. Смит
1
@JohnWHSmith Нет ничего особенного в компиляции программ на Си. Makefiles могут быть использованы для выполнения различных задач. (При этом многие задачи плохо подходят для использования make-файлов.)
Элия ​​Каган
0

Почему бы не создать сценарий оболочки, а затем создать символическую ссылку, которая указывает на созданный сценарий оболочки? Поместите символическую ссылку в каталог, который находится в PATH, чтобы вы могли «запустить» символическую ссылку независимо от того, в каком каталоге вы находитесь.

user544202
источник