登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
go项目使用go build 与 MakeFile 构建项目
go项目使用go build 与 MakeFile 构建项目
[ 复制链接 ]
杓疠?
1 小时前
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
转载请注明出处:
一、Go Build 简要用法
核心作用
编译Go代码生成可执行文件
适合快速编译和简单项目
常用命令
# 基本编译
go build # 编译当前目录
go build -o app ./cmd/main # 指定输出文件
# 交叉编译
GOOS=linux GOARCH=amd64 go build # Linux版本
GOOS=windows go build # Windows版本
复制代码
应用
二、Makefile 简要用法
核心作用
自动化构建流程,统一团队操作
管理复杂依赖关系和构建步骤
标准化开发、测试、部署流程
基本结构
# 变量定义
APP = myapp
VERSION = 1.0.0
# 目标: 依赖
build: fmt test
go build -o $(APP)
# 伪目标
.PHONY: clean
clean:
rm -f $(APP)
复制代码
关键优势
统一入口:团队使用相同命令
复杂流程简化:一键完成多个步骤
环境一致性:避免环境差异问题
文档作用:Makefile即构建文档
模板
# 最小可用 Makefile
.PHONY: help build test clean
help:
@echo "make build - 编译项目"
@echo "make test - 运行测试"
@echo "make clean - 清理文件"
build:
go build -o bin/app ./cmd/main
test:
go test ./... -v
clean:
rm -rf bin/
复制代码
应用:
EXE_LINUX=monitor
EXE_ARM64=monitor-arm64
EXE_DBG_LINUX=monitor-dbg
EXE_DBG_ARM64=monitor-dbg-arm64
all: monitor monitor-arm64
monitor: commit_id
mkdir -p ../bin
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/$(EXE_LINUX) ./cmd/monitor.go
cp ./cmd/monitor_no.conf ../bin/monitor.conf
monitor-arm64: commit_id
mkdir -p ../bin
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags 'pe' -o ../bin/$(EXE_ARM64) ./cmd/monitor.go
cp ./cmd/monitor_no.conf ../bin/monitor.conf
monitor-dbg: commit_id
mkdir -p ../bin
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -gcflags "all=-N -l" -tags 'pe' -o ../bin/$(EXE_DBG_LINUX) ./cmd/monitor.go
monitor-dbg-arm64: commit_id
mkdir -p ../bin
GOOS=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
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
go
项目
使用
build
MakeFile
相关帖子
Claude Code 使用 Skills
Open-AutoGLM项目衍生自研app测试思路
如何使用DashVector的多向量检索
追踪链路--使用iptables/ipvs来记录后端pod真实ip
go语言/golang 自动升级配置
Python - UV 为每个项目创建独立、干净的Python工作空间
使用Python免费合并PDF文件
使用DNGuard加密并打包C# .NET Core程序为单一EXE文件
最小二乘问题详解9:使用Ceres求解非线性最小二乘
从项目成果到职业晋升:项目经理年终总结的高效撰写法
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Claude Code 使用 Skills
1
231
王妍芳
2025-12-16
安全
Open-AutoGLM项目衍生自研app测试思路
1
975
施婉秀
2025-12-16
业界
如何使用DashVector的多向量检索
0
276
别萧玉
2025-12-16
业界
追踪链路--使用iptables/ipvs来记录后端pod真实ip
0
801
硫辨姥
2025-12-17
安全
go语言/golang 自动升级配置
0
693
柄利
2025-12-17
业界
Python - UV 为每个项目创建独立、干净的Python工作空间
0
816
匝抽
2025-12-18
安全
使用Python免费合并PDF文件
0
602
洪势
2025-12-18
安全
使用DNGuard加密并打包C# .NET Core程序为单一EXE文件
2
748
嫁吱裨
2025-12-19
业界
最小二乘问题详解9:使用Ceres求解非线性最小二乘
0
497
挚魉
2025-12-19
安全
从项目成果到职业晋升:项目经理年终总结的高效撰写法
0
761
栓汨渎
2025-12-19
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
杓疠?
1 小时前
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
590
《痞子衡嵌入式半月刊》 第 120 期
619
go项目使用go build 与 MakeFile 构建项目
761
监控指标与容量预警——延迟、命中率、慢查
673
2026 年别墅防水服务商 TOP5 推荐:高端住
962
MAUI库推荐二:MPowerKit
962
.NET10 New feature 新增功能介绍-JIT编译
404
报考陪诊师选守嘉陪诊的理由
272
C#AI系列(7):从零开始LLM之Tokenizer实现
284
C#AI系列(7):从零开始LLM之Tokenizer实现
825
Pytest 测试用例自动生成:接口自动化进阶
848
一天一个Python库:NumPy - 科学计算的基石
14
FFmpeg 内存输入&输出
745
一文读懂RAG架构如何助力AI
500
一文读懂RAG架构如何助力AI
549
ROS2之TF介绍
400
SW 随笔 001 — InlineArray 带你飞(Since
693
当遇见 CatchAdmin V5-模块化设计重新定义
495
【有手就行】SWIFT:花20分钟把大模型的名
562
论文速读记录 | 2025.12(2)
376
浮点数的本质:为什么计算机无法精确表示0.