前言
Golang 中存在各种运行方式,如何正确的引用文件路径成为一个值得商议的问题
以 go-gin-example 为例,当我们在项目根目录下,执行 go run main.go 时能够正常运行(go build也是正常的)
[$ gin-blog]# go run main.go
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /api/v1/tags --> gin-blog/routers/api/v1.GetTags (3 handlers)
...
那么在不同的目录层级下,不同的方式运行,又是怎么样的呢,带着我们的疑问去学习
问题
1、 go run
我们上移目录层级,到 $GOPATH/src 下,执行 go run gin-blog/main.go
[$ src]# go run gin-blog/main.go
2018/03/12 16:06:13 Fail to parse 'conf/app.ini': open conf/app.ini: no such file or directory
exit status 1
2、 go build,执行 ./gin-blog/main
[$ src]# ./gin-blog/main
2018/03/12 16: