找回密码
 立即注册
首页 业界区 业界 go项目使用go build 与 MakeFile 构建项目

go项目使用go build 与 MakeFile 构建项目

杓疠? 3 小时前
转载请注明出处:
一、Go Build 简要用法

核心作用


  • 编译Go代码生成可执行文件
  • 适合快速编译和简单项目
常用命令 
  1. # 基本编译
  2. go build                      # 编译当前目录
  3. go build -o app ./cmd/main    # 指定输出文件
  4. # 交叉编译
  5. GOOS=linux GOARCH=amd64 go build  # Linux版本
  6. GOOS=windows go build             # Windows版本
复制代码
应用

1.png

二、Makefile 简要用法

核心作用


  • 自动化构建流程,统一团队操作
  • 管理复杂依赖关系和构建步骤
  • 标准化开发、测试、部署流程
基本结构
  1. # 变量定义
  2. APP = myapp
  3. VERSION = 1.0.0
  4. # 目标: 依赖
  5. build: fmt test
  6.     go build -o $(APP)
  7. # 伪目标
  8. .PHONY: clean
  9. clean:
  10.     rm -f $(APP)
复制代码
关键优势


  • 统一入口:团队使用相同命令
  • 复杂流程简化:一键完成多个步骤
  • 环境一致性:避免环境差异问题
  • 文档作用:Makefile即构建文档
模板
  1. # 最小可用 Makefile
  2. .PHONY: help build test clean
  3. help:
  4.     @echo "make build - 编译项目"
  5.     @echo "make test  - 运行测试"
  6.     @echo "make clean - 清理文件"
  7. build:
  8.     go build -o bin/app ./cmd/main
  9. test:
  10.     go test ./... -v
  11. clean:
  12.     rm -rf bin/
复制代码
应用:
  1. EXE_LINUX=monitor
  2. EXE_ARM64=monitor-arm64
  3. EXE_DBG_LINUX=monitor-dbg
  4. EXE_DBG_ARM64=monitor-dbg-arm64
  5. all: monitor monitor-arm64
  6. monitor: commit_id
  7.         mkdir -p ../bin
  8.         GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/$(EXE_LINUX) ./cmd/monitor.go
  9.         cp ./cmd/monitor_no.conf  ../bin/monitor.conf
  10. monitor-arm64: commit_id
  11.         mkdir -p ../bin
  12.         GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/$(EXE_ARM64) ./cmd/monitor.go
  13.         cp ./cmd/monitor_no.conf  ../bin/monitor.conf
  14. monitor-dbg: commit_id
  15.         mkdir -p ../bin
  16.         GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -gcflags "all=-N -l" -tags 'pe' -o ../bin/$(EXE_DBG_LINUX) ./cmd/monitor.go
  17. monitor-dbg-arm64: commit_id
  18.         mkdir -p ../bin
  19.         GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -gcflags "all=-N -l" -tags 'pe' -o ../bin/$(EXE_DBG_ARM64) ./cmd/monitor.go
复制代码
运行编译:
  1. root@xdd-virtual-machine:~/zeng/terra-monitor-23/terra-monitor/src# make all
  2. mkdir -p ../bin
  3. GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/monitor ./cmd/monitor.go
  4. cp ./cmd/monitor_no.conf  ../bin/monitor.conf
  5. mkdir -p ../bin
  6. GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/monitor-arm64 ./cmd/monitor.go
  7. cp ./cmd/monitor_no.conf  ../bin/monitor.conf
复制代码
 
  

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册