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

这篇具有很好参考价值的文章主要介绍了小白终于解决了在学习Go中不知道Makefile是什么的难题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何在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是什么的难题

 


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

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

 


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

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

 


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

       2.安装GUN Make


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

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

 


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

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

 

 


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

 .\build_w32.bat gcc 

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

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

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

 

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

 


    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 来运行测试。文章来源地址https://www.toymoban.com/news/detail-626437.html

到了这里,关于小白终于解决了在学习Go中不知道Makefile是什么的难题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Unity中不显示阴影的问题

    1.检查游戏的Quality设置,在某些质量下,可能会将阴影关闭以提升性能  2.检查光线是否开启了投射阴影的功能 3. 检查场景中的物体是否开启了=投射阴影的功能  4.如果发现直射光不能产生阴影,其他都正确,并且报了下面的错误,则设置Graphics中如下的选项至Built-in Shader即

    2024年02月11日
    浏览(38)
  • 解决vue3中不支持.sync语法糖

    在 Vue 3 中, .sync 修饰符已经被移除。在 Vue 2 中, .sync 修饰符是一个语法糖,用于简化子组件和父组件之间的双向数据绑定。在 Vue 3 中,推荐使用 v-model 或是自定义事件来实现类似的功能。 以下是如何在 Vue 3 中替代 .sync 的两种方法: 使用 v-model 在 Vue 3 中, v-model 可以在自

    2024年01月17日
    浏览(41)
  • 小白必须知道之OSI参考模型,TCP/IP标准模型,TCP/IP对等模型

    前言 1.什么是OSI参考模型 2.我们为什么要学习OSI参考模型 3.我们怎么学习OSI参考模型 1.我们要了解OSI参考模型分为那几层 2.我们要怎么理解和记忆OSI的7层参考模型 前言告知:我们首先要记住一句英文句子:all people seem to need data photo(翻译:所有的人似乎需要数据报) 1.应用

    2024年02月11日
    浏览(56)
  • 【go 定时调度框架】你知道几种go语言定时调度框架?

    Go语言中有很多类似Python apscheduler 的定时调度框架,其中比较流行的有以下几个: cron: 一个基于Cron表达式的定时任务库,可以精确到秒级。它提供了简单易用的API来定义和管理定时任务,支持任务暂停、恢复、删除等操作,同时还能够在多个节点之间共享状态信息。 官方网

    2024年02月15日
    浏览(55)
  • 小白学Go基础01-Go 语言的介绍

    Go 语言对传统的面向对象开发进行了重新思考,并且提供了更高效的复用代码的手段。Go 语言还让用户能更高效地利用昂贵服务器上的所有核心,而且它编译大型项目的速度也很快。 Go 语言开发团队花了很长时间来解决当今软件开发人员面对的问题。开发人员在为项目选择语

    2024年02月10日
    浏览(39)
  • 外接硬盘在电脑中不显示的解决方案

    有时候,你可能会遇到外接的硬盘在电脑中无显示的问题。(可能是电脑没规律关机等导致的) 解决方案:计算机管理 - 设备管理器 - 通用串行总线控制器 - 右击“USB大容量存储设备” - 点击“卸载设备” - 将外接硬盘从电脑接口拔出并重新接上 - 问题解决!

    2024年02月11日
    浏览(77)
  • AIGC大模型必备知识——LLM ,你知道它是如何训练的吗?小白必读深度好文

    Look!👀我们的大模型商业化落地产品 📖更多AI资讯请👉🏾关注 Free三天集训营助教在线为您火热答疑👩🏼‍🏫 近年来,人工智能(AI)领域经历了令人瞩目的增长,尤其是自然语言处理(NLP)。你知道是什么推动了NLP领域的这种飞速发展吗?没错,那就是大型语言模型

    2024年01月25日
    浏览(42)
  • Makefile学习①:Makefile介绍

    Makefile是什么 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行

    2023年04月09日
    浏览(24)
  • Go数据结构----你必须知道的一些

    算法(英文 algorithm )这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等。在计算机科技里,它表示什么呢? 计算机,顾名思义是用来计算的机器。算法在计算机科学中可以描述为:计算机接收一个输入指令,然后进行一个过程处理,最后输出计算

    2024年02月03日
    浏览(45)
  • 小白学go基础03-了解Go项目的项目结构

    我们先来看看第一个Go项目——Go语言自身——的项目结构是什么样的。Go项目的项目结构自1.0版本发布以来一直十分稳定,直到现在Go项目的顶层结构基本没有大的改变。 截至Go项目commit 1e3ffb0c(2019.5.14), Go1.0 项目结构如下: 作为Go语言的创世项目,Go的项目结构的布局对

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包