windows使用make命令

随笔9个月前发布 李钰颀
88 0 0

1. Make简介

Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作,提高开发效率。

  • Make 使用 Makefile 文件描述项目的构建过程,其中包含了源文件、目标文件以及编译和链接的命令等信息。Makefile 按照一定的规则解析,将源码和构建过程相互关联起来,执行具体的构建操作,生成目标文件或可执行文件。
  • Make 工具的优势在于它可以识别哪些文件被修改了,只编译修改过的部分,以提高构建速度。此外,Make 工具还支持基于条件的编译,也就是预处理器(preprocessor)功能,可以生成不同的输出文件用于不同的平台或不同的运行环境。
  • 同时,Make 工具具有很好的跨平台性,可以在 Unix/Linux、Windows、Mac 等多种操作系统上使用,并且可以与多种编程语言搭配使用,如 C、C++、Java 等。
    总之,Make 工具是一种非常实用的构建工具,可以帮助开发者高效地管理和构建项目。

2.make常见命令

make:执行默认的或指定的目标(target)。
make clean:清除所有生成的文件(.o,obj,exe,lib等)。
make install:安装可执行文件或库文件到系统目录。
make uninstall:从系统中卸载已安装的可执行文件或库文件。
make distclean:删除配置文件和Makefile,恢复源代码目录的状态。
make package:将生成的代码打包成可发布的压缩包。
make test:运行单元测试或集成测试。
make help:显示Makefile中定义的所有目标及其说明信息。
make debug:开启调试模式,可以用于调试Makefile。
make dep:将源代码中的依赖关系写入Makefile,以便于自动化编译。

3.Makefile书写方式

PROJECT_NAME=restful-api-demo
MAIN_FILE=main.go
PKG := "gitee.com/deardai/restful-api-demo"
MOD_DIR := $(shell go env GOPATH)
PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/)
GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v _test.go)

.PHONY: all dep lint vet test test-coverage build clean

all: build

dep: ## Get the dependencies
    @go mod tidy

lint: ## Lint the files
    @golint -set_exit_status ${PKG_LIST}

vet: ## Run go vet
    @go vet ${PKG_LIST}

test: ## Run unittests
    @go test -short ${PKG_LIST}

test-coverage: ## Run unittests with coverage
    @go test -short -coverprofile cover.out ${PKG_LIST}
    @go tool cover -func cover.out

build: dep ## Build the binary file
    @go build -ldflags "-s -w" -o dist/demo-api ${MAIN_FILE}

linux: dep ## Build the binary file for linux
    @GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o dist/demo-api-linux ${MAIN_FILE}  

run: # Run the binary file
    @go run ${MAIN_FILE} start -f etc/demo.toml

clean: ## Remove previous build
    @rm -rf dist

help: ## Display this help screen
    @echo "Usage: make [target]"
    @echo "Targets:"
    @awk '/^[a-zA-Z-\_0-9]+:/ { 
        nb = sub( /^## /, "", helpMsg ); 
        if(nb == 0) { 
            helpMsg = $$0; 
            nb = 1; 
        } 
        else { 
            helpMsg = helpMsg " " $$0; 
        } 
    } 
    END { 
        print helpMsg; 
    }' $(MAKEFILE_LIST) | column -ts:
        

HONY 是 Makefile 中的一个关键字,在 Makefile 的规则中表示伪目标,即不与任何文件名相关联的目标。使用 PHONY 关键字声明的目标,其中不包含真正的文件依赖,就算文件名与伪目标同名也不会被当做文件处理。

使用 PHONY 的作用是在将来对于相应的文件名,不会产生任何干扰,而且它可以帮助我们避免与系统中的文件或目录名称发生冲突。通常情况下,PHONY 目标都是一些命令,没有实际的文件产生,而是进行代码编译、测试、清理等等操作。

举个例子,比如我们在 Makefile 中定义了一个 clean 目标用于删除所有生成的二进制文件,那么我们可以使用 PHONY 将其声明为伪目标,这样一个名为 clean 的文件就不会在出现时被误认为是编译生成的文件,从而避免了无意间的误删。声明的语法格式如下

.PHONY: clean
 
clean:
    del *.exe

这里我们可以看到,clean 目标被声明为伪目标,在规则的下一行中,使用 del 命令删除所有 .exe 后缀的文件。

4.windows环境安装

下载mingwhttps://sourceforge.net/projects/mingw/

  1. 运行已下载的mingw-get-setup.exe文件进行安装,默认下一步就好了,默认安装到C:MinGW 目录 也可以自定义安装路径
  2. 双击打开桌面上的MinGW Installer图标.

3.勾选需要的package

windows使用make命令

选择安装 apply changes

windows使用make命令

4.找到对应的文件夹,查看文件

windows使用make命令

  1. 添加环境变量

    windows使用make命令

  2. 修改文件名为make并测试

    windows使用make命令

windows使用make命令

success!提示上图为按照成功

本文链接:https://blog.csdn.net/heiwa110/article/details/130696242

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...