Golang:Hello world不会打印到屏幕,程序也不会退出

时间:2015-11-15 12:30:12

标签: go

当我使用命令“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

编辑:新图片

Updated image

2 个答案:

答案 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
相关问题