go语言生成可执行文件

作者: 进击云原生 | 来源:发表于2018-04-14 00:07 被阅读44次

安装go后,我们一般会设置好GOROOT和GOPATH环境变量,但是有时候因为实际工作中项目结构复杂,设置的GOPATH不能满足需要时,可以在cmd设置临时的GOPATH;很多IDE,比如IDEA也可以设置全局的GOPATH和临时的GOPATH,但是编译可执行文件可能有些复杂或者通过IDE编译或者运行会出现app.conf配置文件加载不到的情况,这个坑我遇到过。请看https://github.com/astaxie/beego/issues/1831
故通过命令的方式生成go的可执行文件。

  • 比如项目结构是这样:


    项目结构

由于依赖了github.com里的beego,所以要加github.com的上级目录到GOPATH。

1. 打开cmd命令窗口,用命令设置要编译包以及依赖包所在路径的环境变量,即GOPATH(该设置只对该窗口生效):

set GOPATH=E:\ProgrammerRoute\Go\Development\

2.然后设置操作系统:

  • 生成windows的可执行文件:

set GOOS=windows

  • 生成linux的可执行文件:

set GOOS=linux

3.然后在src目录下执行go install

go install sayHello
没有报错的话,会在GOPATH下生成bin和pkg目录,可执行文件在bin目录下,如图:


可执行文件

注:
beego1.7.0前的版本app.conf里的配置加载不到,以下的github有issue可寻:
https://github.com/astaxie/beego/issues/1831

利用beego1.7.0之后的版本,用IDE运行go工程也加载不到app.conf的配置,利用go install也加载不到;
用go run main.go可以加载app.conf,用bee工具也可以加载到。

相关文章

  • Golang开发中的常用命令

    rpc接口".pb.go"文件生成 main可执行文件生成 mock文件生成

  • Go语言_go install 与 go build 的区别

    相同 都可以生成可执行文件 不同 go install 能生成包go build 不能生成包 实验证明以上相同和不...

  • 检测目录含有中文或空格文件

    今天心血来潮用Go语言做了个小工具,选择Go主要是因为它可以跨系统生成可执行文件。大概做过Android开发的人应...

  • go语言生成可执行文件

    安装go后,我们一般会设置好GOROOT和GOPATH环境变量,但是有时候因为实际工作中项目结构复杂,设置的GOP...

  • golang最小docker镜像制作

    因为go语言编译好之后为可执行文件,不需要依赖go语言环境即可运行,所以可以在带go语言的docker镜像中编译,...

  • Go-Goland可执行文件生成

    刚接触go语言,根据网上搜索的方法搭建好了环境,安装了IDE,今天卡在了可执行文件的生成上。下面描述下Goland...

  • Golang 的静态编译

    Go语言和C语言的一个很大的区别是,Go语言只静态编译,做个测试: 一方面是Go语言编译后的可执行文件大小比C语言...

  • golang linux windows 交叉编译

    windows服务器 先本地编译 go build main.go 编译后会在同级目录生成可执行文件 main.e...

  • Go Quick

    编译 go build 在当前项目根目录下执行编译命令go build,会在当前路径下生成可执行文件。 使用以GO...

  • 深入理解 go build 和 go install

    1.作用 go build:用于测试编译包,在项目目录下生成可执行文件(有main包)。 go install:主...

网友评论

    本文标题:go语言生成可执行文件

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