当我使用命令“go.exe run main.go”运行以下代码时,程序不会将文本打印到屏幕或退出。
package main
import "fmt"
func main(){
fmt.Println("Hello world")
}
go.exe version = go version go.1.5.1 windows / amd64
设置GOARCH = 386
设置GOBIN =
设置GOEXE = .exe
设置GOHOSTARCH = 386
设置GOHOSTOS = windows
设置GOOS = windows
设置GOPATH = C:\ project
设置GORACE =
设置GOROOT = C:\ Go
设置GOTOOLDIR = C:\ Go \ pkg \ tool \ windows_386
设置GO15VENDOREXPERIMENT =
设置CC = gcc
设置GOGCCFLAGS = -m32 -mthreads -fmessage-length = 0
设置CXX = g ++
设置CGO_ENABLED = 1
任何想法有什么不对?
由于
编辑:
我尝试卸载windows / amd64版本并安装windows / 386无济于事。它安装在c:\ Go中,并设置了PATH。我正在使用Windows 10。
换行
package mainLF
LF
import "fmt"LF
LF
func main(){LF
fmt.Println("Hello world")LF
}LF
以下内容也不会打印到命令提示符。
package main
//import "fmt"
func main(){
println("Hello world")
}
以下给出错误“fmt import but not used”,因此它必须做某事。
package main
import "fmt"
func main(){
}
GOROOT设置为C:\ Go \
路径:C:\ Go \ bin
Image showing how I'm running the program
编辑:新图片
答案 0 :(得分:2)
我在Windows 10系统上遇到了同样的问题。运行go run main.go
不会打印任何内容,而go build main.go
后跟.\main.exe
则可以正常工作并打印出“ hello,world”。
该问题是由于Comodo防病毒软件将go.exe进程隔离为其Auto Containment功能的一部分。我相信go run
命令会编译并尝试将main.go的可执行二进制代码加载到同一进程中,这将触发“自动包含”来隔离应用程序的输出。
最初的解决方法是通过Comodo Antivirus设置禁用“自动包含”。禁用此功能后,go run main.go
开始正常工作。
永久性修复了go.exe可执行文件的add an "ignore" rule。这样可以启用“自动包含”功能,但go run
可以正常工作。
答案 1 :(得分:0)
创建一个名为〜/ sample的文件夹(Where~表示您的主目录) 您可以通过输入以下命令从终端执行此操作:
mkdir sample
以下hello world display程序
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
将它保存为我们刚刚创建的文件夹中的main.go。 打开一个新终端并输入以下内容:
cd sample
go run main.go