在 Linux 上为 Golang 项目编写 Makefile 可以帮助自动化构建、测试和运行等任务。以下是一个简单的示例,展示了如何编写一个基本的 Makefile:
# 定义编译器
GOC := go
# 定义编译选项
GO_BUILD_FLAGS := -o
# 定义目标可执行文件名
TARGET := myapp
# 定义源代码目录
SRC_DIR := ./src
# 定义测试源代码目录
TEST_SRC_DIR := ./test
# 定义包导入路径
PKG_IMPORT_PATH := github.com/yourusername/myapp
# 获取所有源文件
SRC_FILES := $(shell find $(SRC_DIR) -type f -name '*.go')
# 获取所有测试源文件
TEST_SRC_FILES := $(shell find $(TEST_SRC_DIR) -type f -name '*.go')
# 获取包名
PKG_NAME := $(notdir $(SRC_DIR))
# 默认目标
all: build
# 构建目标
build:
$(GOC) build $(GO_BUILD_FLAGS) $(TARGET) $(SRC_FILES)
# 运行目标
run: build
./$(TARGET)
# 测试目标
test:
$(GOC) test $(PKG_IMPORT_PATH)
# 清理目标
clean:
rm -f $(TARGET)
.PHONY: all build run test clean
这个 Makefile 包含了以下目标:
all:默认目标,用于构建项目。build:编译项目并生成可执行文件。run:运行生成的可执行文件。test:运行项目的测试。clean:删除生成的可执行文件。要使用此 Makefile,请将其保存为项目根目录下的 Makefile 文件,并根据您的项目结构和需求进行相应的修改。然后,在终端中运行 make 命令来执行默认目标(在本例中为构建项目)。