До прочтения этой статьи, когда вы упаковывали проект, разработанный на языке Go, вы набирали прямо в командной строке:
go build .
Это при разработке и отладке:
go run main.go
Затем я увидел, что запущен проект языка Go с открытым исходным кодом:
make build
или
make install
Мы упаковываем и запускаем этот процесс, и более подходящим термином является создание проекта.
Позвольте представить вам сегодняMakefile
Этот широко используемый инструмент сборки с открытым исходным кодом подходит не только для Go, но и для проектов на языке C или C++.
01 Введение, чтобы сделать
В разработке программного обеспечения make часто рассматривается как инструмент сборки программного обеспечения. Этот инструмент в основном реализует автоматическое создание программного обеспечения путем чтения файла с именем «makefile» или «Makefile».
Он проверяет зависимости между связанными файлами с помощью концепции, называемой «целью».Система проверки зависимостей очень проста, в основном путем сравнения времени модификации файлов.
В большинстве случаев мы в основном используем его для компиляции исходного кода, генерации результирующего кода, а затем компоновки результирующего кода для создания исполняемых файлов или библиотечных файлов.
Он используется во многих проектах с открытым исходным кодом.
Это скриншот исходного кода на GitHub на популярном в последнее время Эфириуме, других скриншотов делать не буду, далее расскажу, как использовать его для сборки нашего проекта.
02 Установка
Если у вас система Mac, система поставляется с ней. Если это Linux, вам нужно установить make самостоятельно. Команда очень проста.
Команда make install системы centons:
yum install -y make
03 Создайте файл конфигурации
Я создал здесь новый проект, и каталог проекта выглядит следующим образом:
main.go
Исходный код внутри выглядит следующим образом:
Он ничем не отличается от наших предыдущих проектов, просто еще одинMakefile
файл, если вы хотите использоватьMakefile
Чтобы построить свой проект, вам нужно создать это в своем проектеMakefile
документ.
Здесь я размещаю простойMakefile
Исходный код файла:
BINARY_NAME=App
run:
go build -o bin/$(BINARY_NAME) -v
./bin/$(BINARY_NAME)
Объясните, что означают приведенные выше строки:
- Первая строка объявляет переменную
BINARY_NAME
его ценностьApp
, что удобно для последующего использования - Вторая строка объявляет
target
, на самом деле, вы можете понять это как внешний метод - Третья строка, это
target
Скрипт выполняется при вызове, эта строка является проектом сборки, а скомпилированный бинарный файл помещается в корневую директорию текущего проектаbin
В каталоге имя является переменнойBINARY_NAME
значение - Четвертая строка, эта строка предназначена для непосредственного выполнения текущего
bin
бинарники в каталоге
Уведомление:Третья строка должна быть использована перед четвертой строкойtab
ключевой отступ, иначе он сообщит о следующей ошибке:
Makefile:3: *** missing separator. Stop.
04 Начать строительство
Открываем наш терминал и выполняем напрямую:
make run
Он начинает строиться, и эффект следующий:
Что ж, на этот раз я поделюсь этим с вами здесь, а позже продолжу углублять.