go使用makefile脚本编译应用

目录

 

 

1. go介绍

2. make及makefile

3. 使用makefile编译打包go应用

4. 一些go项目的makefile参考


 

 

1. go介绍

Go官方 提供一个名为go的命令,该命令可以用来下载go的依赖,构建安装go应用,运行和测试 Go程序等等, 我们比较常用的比如go get, go mod, go run , go test等等。

但是,我们在 Go 项目中为了简化使用 go 命令的复杂性,规范团队使用 go 命令的方式,提升个人或团队的生产力,我们会使用makefile脚本,使用make来处理一些任务。

2. make及makefile

makefile可以看作是make工具的脚本文件, 而make主要用来处理一系列命令。常用的比如用来编译和打包文件, 在C/C++的编译打包中应用最广泛了。

makefile文件结构其实也比较简单:

target ... : prerequisi
### 使用MakefileWindows环境下编译项目 #### 准备工作 为了能够在Windows环境中顺利使用`makefile`进行C/C++项目的编译,需要先安装合适的工具链。推荐的方式之一是通过MinGW-w64来获取必要的编译器和支持工具[^5]。 下载并解压[w64devkit](https://github.com/skeeto/w64devkit/releases),这是一套轻量级的开发工具集,包含了GCC编译器以及常用的Linux风格命令行工具如`rm`等。接着需将该工具包中的`bin`路径加入系统的环境变量`PATH`中以便全局访问这些命令。完成设置后可以在CMD窗口输入`make --version`检验是否正确配置了`make`命令。 对于那些习惯于图形界面集成开发环境(IDE)的开发者来说,也可以考虑利用VS Code编辑器配合其插件支持来进行基于`makefile`的工作流管理。此时应确保已安装好适用于Windows平台上的GNU Make版本——即位于MINGW64/bin下的`mingw32-make.exe`,并通过终端直接运行此可执行文件来进行构建操作[^4]。 #### 创建Makefile文件 在一个典型的C/C++工程项目里,根目录通常会放置一个名为`Makefile`(注意大小写敏感)的文字档文档,它定义了一系列规则用于指导自动化构建流程。这里给出一段简化版的例子: ```makefile CC=gcc # 编译器名称 CFLAGS=-Wall -O2 # 编译选项 LDFLAGS= # 链接参数 SRCS=$(wildcard *.cpp) OBJS=${SRCS:.cpp=.o} TARGET=example_program all: ${TARGET} ${TARGET}: ${OBJS} $(CC) $(LDFLAGS) -o $^ %.o: %.cpp $(CC) $(CFLAGS) -c -o $< clean: rm -f ${OBJS} ${TARGET} .PHONY : all clean ``` 上述脚本设定了基本的目标依赖关系,并指明了如何由源码生成对象文件再最终链接成可执行文件的过程。其中`${}`语法用来表示变量替换;而像`.PHONY:`这样的特殊标记则告诉`make`某些伪目标并不对应实际存在的文件名而是纯粹的操作指令集合[^1]。 当一切准备就绪之后,在命令提示符或PowerShell内切换至含有`Makefile`的那个文件夹位置,简单键入`make`就能触发整个编译链条自动运转起来。如果之前已经有过一次成功的编译经历,则再次发出相同请求时只会针对自上次以来发生过变动的部分重新处理,从而提高了效率。 另外值得注意的是,虽然上面展示的内容主要围绕着C/C++语言展开讨论,但对于其他编程语境比如Go而言同样可以借助类似的机制实现高效便捷的应用程序打包部署方案[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿CKeen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值