Pull to refresh

Comments 13

Самая распространенная ошибка при использовании Makefile - это не пользоваться cmake для генерации Makefile.

Да. Makefile — слишком низкоуровенвый инструмент, чтобы лазить в него руками. Тем не менее, базовые сценарии его использования все равно надо понимать.

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

Для сборки всяких докер образов используется

Это фактически init скрипт, переписанный с bash на make. Ничего из make power там нет.

Фактически да. Но такий сценарий их использования тоже есть и используется довольно часто. Это удобнее, чем bash скрипты.

Это удобнее, чем bash скрипты.

Bash: хуже чем bash быть не может

Make: поддержите моё пиво..

help: ## This help. @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)

Подкол засчитан, сам так делаю )
Нет, серьезно, Makefile удобнее и лаконичнее для списка часто используемых наборов комманд.

Самая распространенная ошибка при использовании cmake это генерировать Makefile вместо ninja.

Какой-то корявый перевод.

Примечание. Немедленное определение (:=) используется, потому что Ленивое определение (=) результирует в рекурсивном цикле.

Note: The Immediate set (:=) is used because the Lazy set (=) would result in a recursive loop.

«result in» в данном случае переводится, как «приводит к». И эта ошибка по всему переводу проскакивает

Чёт как-то мало практики. Выше уже сказали, что для программ написание мейкфайлов вручную уже не очень модно. Для проектов на Си потому, что большинство проектов на Си — это большие проекты на Си, что несёт свои сложности. Для других языков — потому что там есть система сборки, а мейкфайлы нужны максимум как удобный диспетчер для скриптов.


Если брать именно Си, то где другие интересные вопросы?


  • как отключить бесполезные встроенные правила make
  • когда пользоваться @, -, +
  • отслеживание зависимостей через -MP и -MD
  • «стандартные» цели: all, check, clean, etc.
  • что делать при установке библиотек кроме install
  • как не забывать реализовать uninstall
  • заклинания для самодокументируемого make help
  • делать или не делать рекурсивные вызовы make

Часть 1

График постинга горит, чтоль? Или время переводчика в преддверии нового года дорого? Исходная статья не такая уж и большая. Судя по кускам непереведённого текста, всё же график.

Какой то странный перевод.

Пользователь определил CC=clang в среде, но gcc будет использоваться в любом случае, даже если он не был установлен.

это на каком языке? Как пользоваться неустановленным gcc?

Какое громкое название для такой статьи. Это даже переводом толком не назовёшь, а уж где тут "практики" не понял, не говоря уже о лучших.

Sign up to leave a comment.