【问题标题】:Golang: Hello world doesn't print to screen and program doesnt exitGolang:Hello world 不打印到屏幕并且程序不退出
【发布时间】:2016-02-16 14:58:50
【问题描述】:

当我使用命令“go.exe run main.go”运行以下代码时,程序不会将文本打印到屏幕或退出。

package main

import "fmt"

func main(){
    fmt.Println("Hello world")
}

go.exe 版本 = go 版本 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 已导入但未使用”,因此它一定是在做某事。

package main

import "fmt"

func main(){

}

GOROOT 设置为 C:\Go\

路径:C:\Go\bin

Image showing how I'm running the program

编辑:新图片

Updated image

【问题讨论】:

  • 对我来说完美无缺。请显示您的目录结构和用于构建它的命令。
  • 文件路径是 c:\project\main.go,我尝试使用命令 go.exe run c:\project\main.go 运行它。它只是挂起。
  • EOL 字符只是换行符。
  • 不确定会发生什么,但由于您使用 c:\project 作为项目目录,我建议您阅读此golang.org/doc/code.html
  • 在您的问题中,您说您正在运行“go.exe run main.go”,在 cmets 中“go.exe run c:\project\main.go”,并在附件中图片“去运行 main.go”。不知道从哪里开始。

标签: go


【解决方案1】:

我在 Windows 10 系统上遇到了同样的问题。运行go run main.go 不会打印任何内容,而go build main.go 后跟.\main.exe 会正常工作并打印出“hello, world”。

问题是由于 Comodo 防病毒软件将 go.exe 进程隔离为其Auto Containment 功能的一部分。我相信go run 命令会编译并尝试将 main.go 的可执行二进制代码加载到同一进程中,这会触发 Auto Containment 以隔离应用程序的输出。

最初的修复是通过 Comodo Antivirus 设置禁用自动遏制。禁用此功能后,go run main.go 开始正常工作。

对 go.exe 可执行文件的永久修复是 add an "ignore" rule。这允许启用自动遏制功能,但 go run 可以正常工作。

【讨论】:

    【解决方案2】:

    创建一个名为 ~/sample 的文件夹(其中 ~ 表示您的主目录) 在终端中,您可以通过输入以下命令来执行此操作:

    mkdir sample
    

    下面的hello world显示程序

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

    将它作为 main.go 保存在我们刚刚创建的文件夹中。 打开一个新终端并输入以下内容:

    cd sample
    go run main.go
    

    【讨论】:

    • 我使用的是 Windows 10。我按照您的说明进行操作,它不会在命令提示符下打印任何内容。我将 gopath 设置为“set GOPATH=C:\project”,因此文件存储在“c:\project\sample\main.go”中
    • 据我所知,mkdir、cd 和 ~ 在 Windows 世界中都不是。
    • @Arjun 仅 PowerShell,似乎 superuser.com/questions/332871/…
    • @PatrickCollins 哎呀!我不知道。谢谢! :) 但是支持 cd、mkdir。
    猜你喜欢
    • 2020-09-15
    • 2013-05-28
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多