美文网首页原创Golang技术交流
换Make来构建你的Go语言项目吧

换Make来构建你的Go语言项目吧

作者: IT锟 | 来源:发表于2018-10-19 19:56 被阅读6次

看这篇文章之前,你是否打包Go语言开发的项目时,是直接在命令行输入:

go build .

在开发调试时是否是:

go run main.go

然后看到开源的Go语言项目在运行时却是:

make build

或者

make install

我们打包运行这个过程,还有一个更加贴切的词语叫做构建项目。

今天给大家介绍下Makefile这个广为使用的构建工具,他是开源的,不仅仅适用于Go当中,C语言的项目或者C++的项目等同样都适用。

01

make简介

在软件开发中,make通常被视为一种软件构建工具。该工具主要经由读取一种名为“makefile”或“Makefile”的文件来实现软件的自动化建构。

它会通过一种被称之为“target”概念来检查相关文件之间的依赖关系,这种依赖关系的检查系统非常简单,主要通过对比文件的修改时间来实现。

在大多数情况下,我们主要用它来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件。

很多开源项目里面都在用到

这是最近比较火的以太坊上在GitHub上的源码截图,其他的我就不再截图了,接下来给大家介绍下怎么使用它开构建我们的项目。

02

安装

如果你是mac的系统,系统是自带了的,如果是linux就需要自己安装下make,命令很简单。

centons系统的make安装命令:

yum install -y make

03

创建配置文件

我这里新建了一个工程,工程目录是这样:

main.go里面的源码如下:

和我们以往的项目没啥区别,就多了一个Makefile文件,如果要使用Makefile去构建你项目,就需要在你的项目里面新建这个Makefile文件。

这里我贴一个简单的Makefile文件的源码:

BINARY_NAME=App
run:
    go build -o bin/$(BINARY_NAME) -v
    ./bin/$(BINARY_NAME)

解释下上面各行的意思:

  • 第一行,声明了一个变量BINARY_NAME他的值是App,方便后面使用
  • 第二行,声明一个 target,其实你可以理解成一个对外的方法
  • 第三行,这就是这个target被调用时执行的脚本,这行就是build这个项目,编译后的二进制文件放在当前工程根目录下的bin目录下,名字是变量BINARY_NAME的值
  • 第四行,这一行就是直接执行当前bin目录下的二进制文件

注意:
第三行,第四行前面一定要用tab键缩进,否者会报下面的错:

Makefile:3: *** missing separator.  Stop.

04

开始构建

我们打开我们的终端,直接执行:

make run

就开始构建了,效果如下:

好了,这次就给大家分享到这里,后面会继续深入。

相关文章

  • 换Make来构建你的Go语言项目吧

    看这篇文章之前,你是否打包Go语言开发的项目时,是直接在命令行输入: 在开发调试时是否是: 然后看到开源的Go语言...

  • make 命令构建应用

    make 命令 Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件...

  • make命令的Makefile文件初探

    make 命令 Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件...

  • Go语言中new和make的区别

    转载自Go语言中new和make的区别 Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我...

  • go语言视频讲解机会

    本文是的go语言系列视频的目录 go语言中的make和new(https://www.bilibili.com/v...

  • bitcoin mempool 杂记

    新构建的项目 新项目的构建文件:txmempool.go; txentry.go 已经完成的方法: mempool...

  • 使用Gradle构建Go语言项目

    厌倦了全局GOPATH,觉得Makefile太难写,想要Java那样完整的IDE支持?来试试Gogradle吧。 ...

  • Makefile入门

    make是一个自动化构建工具,广泛应用于Unix及其类Unix系统中。make最先应用于编译C语言项目,不仅如此,...

  • 使用 Ninja 代替 make

    前言 在传统的 C/C++ 等项目构建时,通常会采用 make 系统使用 Makefile 文件来进行整个项目的编...

  • GO项目目录结构介绍

    GO语言项目结构 在进行GO语言项目开发的时候,我们的代码总是会保存在$GOPATH/src目录下。在项目经过go...

网友评论

    本文标题:换Make来构建你的Go语言项目吧

    本文链接:https://www.haomeiwen.com/subject/rnpuzftx.html