Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > go build 移除路径信息

go build 移除路径信息的实现步骤

作者:iw3c.com

本文主要介绍了go build 移除路径信息的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

用了一段时间的Golang之后,一直有个困惑,为什么报错的时候提示是这样的。

panic: 文件不存在

goroutine 1 [running]:
main.findFile(...)
/Users/Aries/Desktop/projec/main.go:4
main.main()
/Users/Aries/Desktop/projec/main.go:8 +0x3a
exit status 2

作为一名开发人员,总感觉不是那么安全和严谨。报错信息里包含了你编译时候项目的所在路径,总感觉曝光了自己一样。

于是搜索网上怎么去除路径,找到了一个解决方法。 修改后的编译脚本如下:

CGO_ENABLED=0 go build -v -a -ldflags '-s -w' \
   	-gcflags=-trimpath=$(PWD) \
   	-asmflags=-trimpath=$(PWD) \
   	-o ./main main.go
panic: 文件不存在

goroutine 1 [running]:
main.findFile(...)
       main.go:4
main.main()
       main.go:8 +0x3a

你会想应该去掉了路径吧。我也是这样想的。可一会之后又报错了,再次报错的信息如下:

panic: No Such File
goroutine 1 [running]:
github.com/clllab/mov/utils.FindEnv(...)
/Users/Darcy/Desktop/projec/utils/utils.go:7
main.main()
main.go:14 +0x4e

发现了吧,虽然main package里面没有了报错信息,可其他的package的panic 同样还是有包含路径信息。于是继续搜索。

然后找到了这篇文章: stackoverflow

编译脚本改成了这样:

CGO_ENABLED=0 go build -v -a -ldflags '-s -w' \
   	-gcflags="all=-trimpath=${PWD}" \
   	-asmflags="all=-trimpath=${PWD}" \
   	-o ./main main.go

到此这篇关于go build 移除路径信息的实现步骤的文章就介绍到这了,更多相关go build 移除路径信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文