我编写了一些代码然后将应用程序构建到输出文件,但有时我只想检查应用程序是否可构建,即没有错误并生成编译输出,但实际上没有写入输出文件。
我尝试了这个变种,似乎有效:
go build -o /dev/null myapp
但我怀疑必须有更多的官员"去检查它是否可以构建。
请指教!
答案 0 :(得分:2)
如何检查go app是否可构建?
据我了解您的问题,您想查看您正在编辑的文件是否没有错误。
然后您可以将vim-go plugin用于vim。
然后设置.vimrc以创建快捷方式:
"shortcut for vim-go
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
当我想看到我的文件没有错误时,我将此作为我的日常工作生活我只需输入\+b
。然后它将输出错误而不在终端中键入go build
。
答案 1 :(得分:1)
要检查包或应用是否可构建,go build
是&#34;官方&#34;方式。
你所做的是最简单的方法。在我看来,你应该坚持下去。或者你可以这样做:
go build -o delme && rm delme
但它有点慢,因为它必须写入结果然后被删除,但这个解决方案是独立于平台的(因为/dev/null
在Windows上不存在)。
在构建命令(main
包)时,根据定义go build
将创建结果并将结果保留在当前工作目录中。如果你建立一个正常的&#34;包(非main
),结果将被丢弃。详情请见What does go build build?
因此,如果您不得不使用-o /dev/null
参数或手动删除结果,那么您可以“转换”#34;将您的main
个套餐发送给非main
,我们将其称为main2
。并添加一个新的main
包,除了导入和调用main2.Main()
之外别无其他任何操作。构建main2
包不会留下任何文件。
E.g。 myapp/main.go
:
package main
import "myapp/main2"
func main() { main2.Main() }
myapp/main2/main2.go
:
// Every content you originally had in main.go
package main2
func Main() {
// ...
}
答案 2 :(得分:0)
所有文件的一种方式是gofmt -e my_file.go
,但是:
go build
可能出现的所有错误。含义:go build -o /dev/null
可能仍然是更彻底的方法。
仅用于验证语法和结构:see gotype
答案 3 :(得分:0)