程序可执行文件未运行



如果我运行go build -o bin/test ./scripts/test.go,我会得到一个可执行文件,但当我尝试运行它时,我会获得

Failed to execute process './bin/test'. Reason:
exec: Exec format error
The file './bin/test' is marked as an executable but could not be run by the operating system.

scripts/test.go

package scripts
import (
"fmt"
)
func main() {
fmt.Println("hello")
}

应为package main:

package main
import "fmt"
func main() {
fmt.Println("hello")
}

https://tour.golang.org/welcome

go build命令的文档详细介绍了它的工作原理。

摘要:

  • 建筑"主";程序包将输出一个可执行文件
  • 构建一个非主包将输出一个对象(并丢弃它(
  • 使用-o构建将强制命令不丢弃输出,并将其保存到指定的文件

所以基本上你在这里所做的是构建一个非主包,它输出一个对象文件,而不是一个可执行文件。通常情况下,这是被丢弃的,但由于使用了-o选项,您迫使它将其输出到一个文件中。

要获得实际的可执行文件,您只需要将包名称更改为main(如Steven Penny所述(

最新更新