安装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工具也可以加载到。