如何在Go中使用Makefile

1.Makefile是什么 

Makefile是一种构建工具,用于在项目中定义和执行一系列命令。它通常包含了一些规则和目标,用于编译、测试、运行和清理项目。

2.Makefile可以用于哪些语言的构建过程

Makefile最初是为了 C程序的构建而设计的,但由于其简洁和灵活的特性,在许多其他编程语言和项目中也被广泛使用。
如:
1. C/C++,可以定义编译器选项、链接库、依赖关系等,并执行编译、链接和生成可执行文件的操作。
2. Java,可以定义编译选项、依赖关系和执行Java编译器的命令
3. Python,可以定义自定义的构建目标,例如运行测试、生成文档等
4. JavaScript/Node.js,可以添加自定义的构建目标,例如打包、压缩、部署等
5. Go,Go语言本身具有强大的构建工具(go build、go test等),但对于复杂的构建流程,使用Makefile可以更好地组织和管理多个操作步骤

3.Makefile官方文档

1.GNU Make 官方网站:https://www.gnu.org/software/make/ 这是 GNU Make 官方网站,提供了 Make 的最新版本、文档、下载和支持资源。
2.GNU Make 用户手册:https://www.gnu.org/software/make/manual/ 这是 GNU Make 的用户手册,包含了关于 Makefile 语法、命令、规则和高级用法的详细说明。你可以在这里找到全面的 Makefile 文档。
3.GNU Make 示例:https://www.gnu.org/software/make/manual/html_node/Simple-Makefile.html#Simple-Makefile 这个页面提供了一个简单的 Makefile 示例,可以帮助你入门和理解 Makefile 的基本用法。
4.GNU Make 文件案例库:https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html#Automatic-Prerequisites 这个页面包含了一些实际项目中的 Makefile 示例和案例,可以帮助你学习和应用 Makefile。

4.在windows系统下使用Makefile

       使用Makefile需要安装GUN Make,安装GUN Make需要先安装 gcc

       1.安装gcc


    1、首先打开gcc官方网站,https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/,找到如下图版本,此版本是win

小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP


    2、64位系统下的gcc包。
    3、解压后放到想放的文件目录下,如下 图 。

小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP


    4、根据放置的目录,将bin文件目录,放入系统环境变量Path里面即可,如 图。

小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP


    5、使用命令提示符,输入 gcc -v 出现gcc版本即安装成功 。

       2.安装GUN Make


    1、首先打开GUN Make下载网站,https://ftp.gnu.org/gnu/make/,下载如图版本。

小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP


    2、下载解压后可以看到一个build_w32.bat文件,用文本打开,修改如下图,这里修改的是build_w32.bat编译后make软件的名称。

小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP


    3、修改完成后,在此目录下打开命令提示符,运行命令(执行此命令要在build_w32.bat目录下。)

 .\build_w32.bat gcc 

    4、执行完成后会生成GccRel文件夹,如图。

小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP

    5、将GccRel文件目录配置到环境变量Path里面,如图。

 小白终于解决了在学习Go中不知道Makefile是什么的难题-LMLPHP


    6、在命令提示符运行make -v可以查看版本即安装成功。

5.在Go中使用Makefile

# 设置变量
GOCMD = go
GOBUILD = $(GOCMD) build
GOCLEAN = $(GOCMD) clean
GOTEST = $(GOCMD) test
BINARY_NAME = myapp

# 默认目标
all: build

# 编译应用程序
build:
    $(GOBUILD) -o $(BINARY_NAME) -v

# 清理生成的二进制文件
clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

# 运行测试
test:
    $(GOTEST) -v ./...

# 设置 .PHONY 伪目标,用于执行非文件依赖的命令
.PHONY: all build clean test

要使用 Makefile,请确保在项目根目录创建一个名为 Makefile 的文件,并在命令行中使用 make 命令。通过执行 make(或 make all)来编译项目,执行 make clean 来清理生成的文件,以及执行 make test 来运行测试。

08-06 03:28