Использование make для компиляции кода в c в терминале на Mac

Я пытаюсь научиться программировать на C и привыкаю компилировать код после его написания. На самом деле я использую 2-е издание K&R для начала, и они используют «cc» для компиляции. Первоначально я начал использовать Zed Shaw's Learn C The Hard Way, но остановился, потому что не слышал о нем много хороших отзывов. Способ Зеда Шоу заключался в том, чтобы использовать make для компиляции кода, по крайней мере, вначале.

Есть ли какое-либо техническое различие между использованием make и cc, о котором я должен сейчас беспокоиться?


person James Stuckey    schedule 02.02.2018    source источник
comment
make требует, чтобы вы написали Makefile для своего проекта, что в основном представляет собой формат инструкций, указывающих компилятору и компоновщику, что делать. cc - это просто компилятор C.   -  person Patrick Roberts    schedule 02.02.2018
comment
@PatrickRoberts Вы, наверное, знаете, что make имеет много настроек по умолчанию, которые можно использовать без Makefile.   -  person Code-Apprentice    schedule 02.02.2018
comment
@ Code-Apprentice Я действительно не знал об этом. Я никогда не пробовал запускать make в проекте, в котором не было Makefile.   -  person Patrick Roberts    schedule 02.02.2018
comment
@PatrickRoberts Зед Шоу немного обсуждал Makefile в книге, прежде чем я бросил его, но я не понимаю, что это такое, и у меня нет файла для простых программ, которые я делаю с книгой K&R. Make по-прежнему работает. Я просто не хочу создавать плохую привычку с самого начала, делая это, если я не должен этого делать.   -  person James Stuckey    schedule 02.02.2018
comment
Как только вы выходите за пределы упражнений с одним исходным файлом, использование make становится если не обязательным, то весьма желательным, не в последнюю очередь потому, что вы можете организовать make перекомпиляцию только тех вещей, которые необходимо перекомпилировать, но также и гарантировать, что все вещи которые необходимо перекомпилировать, перекомпилируются. Для достаточно небольших программ простая перекомпиляция всего, вероятно, возможна с современными машинами и компиляторами, но использование make может сэкономить много времени (а также боли и горя) в больших проектах.   -  person Jonathan Leffler    schedule 02.02.2018


Ответы (2)


make просто дает команды компилятору, такие как cc. Он автоматизирует создание проекта, состоящего из нескольких файлов. Для начала вам не нужно беспокоиться об этих деталях. Создание одного файла напрямую с помощью cc — это нормально. На самом деле, вы поймете, как работает компилятор, чтобы получить максимальную отдачу от make, когда вы в конце концов изучите его.

person Code-Apprentice    schedule 02.02.2018
comment
Итак, я предполагаю, что это может быть более преднамеренная команда, когда у меня есть несколько файлов? Не лучше ли мне сейчас намеренно использовать cc? - person James Stuckey; 02.02.2018

Я согласен с code-apprentice. Я бы только добавил, что важно иметь хорошее представление о различных параметрах командной строки cc, прежде чем переходить к make. Когда вы дойдете до более сложного проекта компиляции и процесс сборки вашего окончательного двоичного файла станет болезненным, тогда вы можете перейти к изучению Make!

person Bruno    schedule 02.02.2018