为了账号安全,请及时绑定邮箱和手机立即绑定

在 go 中删除跟踪中的模块路径

在 go 中删除跟踪中的模块路径

Go
RISEBY 2022-06-27 16:36:10
我需要删除跟踪中的绝对路径,它对应于导入的模块。即使我这样编译我的程序:go build -gcflags=-trimpath=$GOPATH -asmflags=-trimpath=$GOPATH我仍然得到模块文件的完整路径,出现恐慌的地方,尽管程序的非模块文件没有显示完整路径:goroutine 1 [running]:monitors/fibre_monitor/logging.FileHandler(0x5e6755, 0x1a, 0x441, 0x0, 0x6fc23ac00, 0x1, 0x500000, 0xc000000002, 0xb)        /home/gtristan/go/src/monitors/fibre_monitor/logging/file_handler.go:182 +0x11fmain.python_logger(0x5e1383, 0x5, 0x5e6755, 0x1a, 0x101)        src/monitors/fibre_monitor/fibre_monitor.go:73 +0x1b5main.main_check(0x0, 0xc00008e058)        src/monitors/fibre_monitor/fibre_monitor.go:343 +0x65main.main()        src/monitors/fibre_monitor/fibre_monitor.go:428 +0x56有什么解决方案可以在跟踪中到处摆脱 GOPATH?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

使用-trimpath参数 to go build(not to gcflagsor asmflags):


没有-trimpath:


$ go build .

$ ./panic 

panic: bleh


goroutine 1 [running]:

main.example(0xc000046738, 0x2, 0x4, 0x473f2b, 0x5, 0xa)

    /home/me/stuff/src/github.com/me/testing/panic/main.go:9 +0x39

main.main()

    /home/me/stuff/src/github.com/me/testing/panic/main.go:4 +0x72

与-trimpath:


$ go build -trimpath  .

$ ./panic 

panic: bleh


goroutine 1 [running]:

main.example(0xc000046738, 0x2, 0x4, 0x473f2b, 0x5, 0xa)

    github.com/me/testing/panic/main.go:9 +0x39

main.main()

    github.com/me/testing/panic/main.go:4 +0x72


每go help build:


    -trimpath

        remove all file system paths from the resulting executable.

        Instead of absolute file system paths, the recorded file names

        will begin with either "go" (for the standard library),

        or a module path@version (when using modules),

        or a plain import path (when using GOPATH).


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信