gpt4 book ai didi

go - 配置[执行构建]/[执行测试]等以在诊断消息中显示绝对路径

转载 作者:行者123 更新时间:2023-12-01 22:28:03 25 4
gpt4 key购买 nike

有没有一种方法可以配置/引导go buildgo test等使用绝对路径来报告文件位置?我经常从编辑器中运行go build(解析输出),如果go build进程的当前工作目录与编辑器本身不需要匹配,将很方便。

到目前为止,我发现的唯一解决方案是将go build包装在一个确定文件绝对路径的脚本中,然后立即将cd s到一个临时目录,然后再使用go build原始参数调用realpath

创建一个临时目录并使用cd来欺骗go工具似乎是一种奇怪的解决方法,所以我想知道是否有更直接的解决方案。

除了将绝对路径打包并将go tools打包到随机目录之外,是否可以将cd配置为报告绝对路径?

假设我的GOPATH/go,并且我有以下文件。

// /go/src/nonexistent-website.com/example-2019-10-26/main.go
package main

import (
"fmt"
)

func main() {
fmt.Println("hi")
}

假设我故意在此文件中引入错误。
// /go/src/nonexistent-website.com/example-2019-10-26/main.go
package main

// import (
// "fmt"
// )

func main() {
fmt.Println("hi")
}
go build main.go报告以下错误:
/go/src/nonexistent-website.com/example-2019-10-26$ go build main.go
# command-line-arguments
./main.go:9: undefined: fmt in fmt.Println
2

如果给出绝对路径,则 go build ...仍将 ./main.go报告为文件路径
/go/src/nonexistent-website.com/example-2019-10-26$ go build `realpath main.go`
# command-line-arguments
./main.go:9: undefined: fmt in fmt.Println
2
go build似乎产生相对于从其调用的目录的路径:

这些是 go build在首先将 cd定向到根目录时生成的路径。
/go/src/nonexistent-website.com/example-2019-10-26$ (a=`realpath main.go` && cd / && go build $a)
# command-line-arguments
go/src/nonexistent-website.com/example-2019-10-26/main.go:9: undefined: fmt in fmt.Println
2

可以通过 go build哄骗 cd发出绝对路径-进入一个保证新鲜的目录
/go/src/nonexistent-website.com/example-2019-10-26$ (a=`realpath main.go` && cd `mktemp -d` && go build $a)
# command-line-arguments
/go/src/nonexistent-website.com/example-2019-10-26/main.go:9: undefined: fmt in fmt.Println
2

最佳答案

除了包装绝对路径并设置到随机目录外,是否可以将go工具配置为报告绝对路径?

没有。

关于go - 配置[执行构建]/[执行测试]等以在诊断消息中显示绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58573687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com