windows使用make命令

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


image.png

选择安装 apply changes


image.png

4.找到对应的文件夹,查看文件
image.png
  1. 添加环境变量


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


    image.png
image.png

success!提示上图为按照成功

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 代码变成可执行文件,叫做编译[https://www.ruanyifeng.com/blog/2014/11/co...
    Anne_胖达阅读 439评论 0 2
  • 引言 做android系统相关的开发已经有几年了,很早就想梳理一下make相关的知识。想详细介绍一下android...
    qiuxintai阅读 9,039评论 1 24
  • 第一个工程 对于新手来说,看了别人对make 和makeFile 文件的介绍,看的爽,但是还感觉是无从下手,我就是...
    充满活力的早晨阅读 3,002评论 0 2
  • make 是一个根据指定Shell命令进行构建的工具。规定要构建哪个文件,它依赖于哪些源文件,当这些文件变动时,如...
    小码弟阅读 526评论 0 0
  • 1.什么是make 代码变成可执行文件, 叫做编译(compile),先编译这个, 还是先编译那个(即编译的安...
    三少爷010阅读 66评论 0 0