当前位置: 首页 > news >正文

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

转载请注明出处:

一、Go Build 简要用法

核心作用

  • 编译Go代码生成可执行文件

  • 适合快速编译和简单项目

常用命令 

# 基本编译
go build                      # 编译当前目录
go build -o app ./cmd/main    # 指定输出文件# 交叉编译
GOOS=linux GOARCH=amd64 go build  # Linux版本
GOOS=windows go build             # Windows版本

应用

image

二、Makefile 简要用法

核心作用

  • 自动化构建流程,统一团队操作

  • 管理复杂依赖关系和构建步骤

  • 标准化开发、测试、部署流程

基本结构

# 变量定义
APP = myapp
VERSION = 1.0.0# 目标: 依赖
build: fmt testgo build -o $(APP)# 伪目标
.PHONY: clean
clean:rm -f $(APP)

关键优势

  1. 统一入口:团队使用相同命令

  2. 复杂流程简化:一键完成多个步骤

  3. 环境一致性:避免环境差异问题

  4. 文档作用:Makefile即构建文档

模板

# 最小可用 Makefile
.PHONY: help build test cleanhelp:@echo "make build - 编译项目"@echo "make test  - 运行测试"@echo "make clean - 清理文件"build:go build -o bin/app ./cmd/maintest:go test ./... -vclean:rm -rf bin/

应用:

EXE_LINUX=monitor
EXE_ARM64=monitor-arm64
EXE_DBG_LINUX=monitor-dbg
EXE_DBG_ARM64=monitor-dbg-arm64all: monitor monitor-arm64monitor: commit_idmkdir -p ../binGOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/$(EXE_LINUX) ./cmd/monitor.gocp ./cmd/monitor_no.conf  ../bin/monitor.confmonitor-arm64: commit_idmkdir -p ../binGOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/$(EXE_ARM64) ./cmd/monitor.gocp ./cmd/monitor_no.conf  ../bin/monitor.confmonitor-dbg: commit_idmkdir -p ../binGOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -gcflags "all=-N -l" -tags 'pe' -o ../bin/$(EXE_DBG_LINUX) ./cmd/monitor.gomonitor-dbg-arm64: commit_idmkdir -p ../binGOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -gcflags "all=-N -l" -tags 'pe' -o ../bin/$(EXE_DBG_ARM64) ./cmd/monitor.go

运行编译:

root@xdd-virtual-machine:~/zeng/terra-monitor-23/terra-monitor/src# make all
mkdir -p ../bin
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/monitor ./cmd/monitor.go
cp ./cmd/monitor_no.conf  ../bin/monitor.conf
mkdir -p ../bin
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/monitor-arm64 ./cmd/monitor.go
cp ./cmd/monitor_no.conf  ../bin/monitor.conf

 

  

http://www.jsqmd.com/news/119828/

相关文章:

  • CSP解决并发
  • Level 9 → Level 10
  • pdf2zh -i 报错: ImportError: libGL.so.1: cannot open shared object file: No such file or directory
  • MongoDB小课堂: 容器化部署与执行综合指南
  • MongoDB小课堂: 容器化部署与执行综合指南
  • Java毕设选题推荐:基于javaweb在线考试系统设计与实现基于springboot的在线考试系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • python:报错:ModuleNotFoundError: No module named docx
  • 解读一个简单的x64程序的反汇编结果
  • 实测 9 款 AI 写论文哪个好?这款工具凭 “真实文献 + 规范图表” 赢麻了!
  • LLM基础
  • 实用指南:把 Spring Boot 的启动时间从 3 秒打到 30 毫秒,内存砍掉 80%,让 Java 在 Serverless 时代横着走
  • 你是你吃出来的
  • 整体二分总结
  • [强网杯 2019]upload
  • 系统文件eapprovp.dll丢失或损坏 免费下载修复方法
  • Java毕设选题推荐:基于springboot的闲置资产管理系统的设计与实现基于SpringBoot的公司资产管理系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 最新ASNT七大无损检测技巧全解析(RT/UT/PA/MT/PT/ECT/VT实操指南)- 上海欧鑫 ASNT 认证培训
  • 基于深度学习的草莓健康度检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 【git】企业级开发模型 - 实践
  • MATLAB电力系统继电保护之自动重合闸
  • CVE-2025-68079:ThemeNectar Salient Shortcodes插件中的跨站脚本漏洞解析
  • 复习——IPC(进程间通信)
  • 5 款 AI 写论文哪个好?深度实测后,这款 “学术实力派” 藏不住了!
  • 写论文软件哪个好?虎贲等考 AI:毕业论文创作的 “全能通关神器”
  • 降重 + 去 AIGC 痕迹双 buff!虎贲等考 AI:让论文原创性 “无可挑剔”
  • 8个AI论文工具,自考本科轻松搞定写作难题!
  • 10 个AI写作工具,助你轻松搞定继续教育论文!
  • 期刊投稿屡投屡拒?虎贲等考 AI:让学术成果精准叩开核心期刊大门
  • 虎贲等考 AI:AI 赋能学术创作,全流程论文辅助工具革新登场
  • 【开题答辩全过程】以 基于VUE的爱心捐赠物资信息管理系统为例,包含答辩的问题和答案