Skip to main content

GNU Make Book - Демистификация автоматизации сборки Linux

The GNU Make Book (Май 2025)

The GNU Make Book (Май 2025)
Anonim

Помимо написания о Linux и написания обзоров и руководств по дистрибутивам и инструментам, я также активно участвую в разработке программного обеспечения. К сожалению, 99,9% этой разработки программного обеспечения происходит на платформе Windows.

Я имею более чем 20-летний опыт работы как разработчик C ++, Visual Basic, VB.NET и C #, и я также являюсь лаконичной рукой с SQL Server как администратором баз данных, так и разработчиком.

Я не очень хорошо разбираюсь в разработке программного обеспечения для Linux. Это то, чего я никогда не беспокоился. Основная причина заключается в том, что после разработки программного обеспечения в течение дня последнее, что я хочу сделать, это сидеть вокруг вечера, написав больше программного обеспечения.

Мне явно нравится возиться со сценариями и писать нечетную небольшую программу. Обычно это относится к проектам на основе электроники на малиновом PI.

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

Самым простым типом приложения для разработки являются веб-приложения, потому что обычно они не требуют скомпилированного кода (PHP, Perl, Python), и файлы развертываются в установленном месте на веб-сервере.

Большое количество приложений, созданных для Linux, разрабатывается с использованием C, C ++ или Python. Компиляция одной программы на C относительно проста, но когда вам нужно скомпилировать несколько программ на C с несколькими зависимостями, все становится немного сложнее.

GNU Make - это инструмент сценариев автоматизации сборки, который помогает вам скомпилировать ваши приложения снова и снова и по-разному. Например, вы можете указать параметр, который в зависимости от значения будет компилировать приложение с использованием 64-битного или 32-битного.

Книга GNU Make написана Джоном Грэм-Камминг, чтобы помочь пользователям GNU Make получить более жесткий контроль над сложностями, связанными с GNU Make.

Книга разделена на шесть глав:

  1. Основы Revisited
  2. Отладка Makefile
  3. Строительство и реставрация
  4. Ловушки и проблемы
  5. Нажатие конверта
  6. Стандартная библиотека GNU

Я не верю, что книга действительно нацелена на новичков, потому что ей не хватает определенных разъяснений, которые вы ожидаете при изучении нового предмета, такого как «Что такое GNU Make?», «Как создать файл Make?», «Почему использует лучше, чем компиляция каждой программы по одному? " и «Как скомпилировать программы с помощью GNU Make?». Все эти тематические области описаны в руководстве GNU Make.

Тот факт, что первая глава называется «Основы пересмотрены», в отличие от «Основы», ясно показывает, что перед тем, как вы начнете, вы должны иметь заземление в предмете.

В первой главе рассматриваются все основы, такие как использование переменных, среды, используемые командами и среда $ (Shell). По мере того как глава движется, вы попадаете в предмет сравнения, списки и пользовательские функции.

Если вы некоторое время используете GNU Make, но еще не считаете себя экспертом, есть несколько полезных советов и советов, которые помогут вам понять некоторые тонкости, которые могут быть не сразу очевидны.

Вторая глава станет находкой для тех из вас, кто пытался уловить ошибки в сценариях сборки. Раздел «Отладка Makefile» полна отличных подсказок и советов по отладке Make-файлов и включает разделы по печати значений переменных и даже сброс значений каждой переменной. Далее в главе, есть руководство к отладчику GNU, которое вы можете использовать для выполнения сценариев.

В третьей главе приведены примеры make-файлов, но больше, чем показано, как создавать Make-файлы, которые вы можете запускать снова и снова.

«Ловушки и проблемы» рассматриваются различия между некоторыми терминами, такими как = и: =, а ifndef и? =.

Я нашел, как я пошел дальше через книгу, потому что я не активно пытаюсь использовать GNU Make и потому, что мои знания находятся на очень базовом уровне, часть предмета очень сильно пошла мне на голову.

К тому времени, как я добрался до главы «Pushing the Envelope», мои глаза несколько остеклены.

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

Проблема в том, что иногда, когда эксперт по предмету пытается что-то написать, у них есть это «о, это легко, все, что вам нужно сделать, это …» аура о них.

На прошлой неделе резиновое уплотнение на моей задней двери появилось, и, поскольку мне всего пару лет, я позвонил в компанию, которая его оснастила, поскольку она все еще находится в гарантии.

Леди по телефону сказала: «О, это нормально, я пришлю вам новую печать».

Я сказал: «О, я должен сам по себе подходить? Это то, что я могу сделать».

Ответ был «Конечно, вы можете, все, что вам нужно сделать, это снять дверь, установить печать и снова положить дверь».

Теперь моя мгновенная мысль была «woah, перемотайте немного там, взлетете за дверь?!?». Я не имею права снимать дверь, устанавливать уплотнение и устанавливать дверь. Я оставляю это экспертам.

С этой книгой я чувствую, что вам нужна еще одна книга и определенный опыт написания Makefile, прежде чем вы найдете ее полезной.

Я думаю, что подсказки, советы и предоставленные знания помогли бы некоторым людям сказать: «О, вот почему это делает» или «Я не понимал, что вы могли бы так сделать».

Поэтому моя оценка заключается в том, что вы должны купить эту книгу, если вы хотите получить разъяснения или более продвинутые знания в GNU Make, но это не книга для новичков.