使用Windows 11专业版,安装围棋使用的是installer. 以下是我的main.go文件: 主程序包

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("Hello world")
    time.Sleep(2 * time.Second)
}

以及我能想到的所有相关信息: Powershell version: PS C:\Users\fares.alghazy\go\src> $PSVersionTable.PSVersion

主要次要内部版本修订


5 1 22621 1 778

GO extension settings.json:

{
    "explorer.confirmDelete": false,
    "terminal.integrated.scrollback": 100000,
    "editor.minimap.enabled": false,
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "workbench.editorAssociations": {
        "*.db": "default",
        "*.docx": "default"
    },
    "[json]": {
        "editor.defaultFormatter": "vscode.json-language-features"
    },
    "[php]": {
        "editor.defaultFormatter": "Sophisticode.php-formatter"
    },
    "editor.formatOnSave": true,
    "prettier.tabWidth": 4,
    "[typescript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },
    "[dockercompose]": {
        "editor.defaultFormatter": "ms-azuretools.vscode-docker"
    },
    "typescript.updateImportsOnFileMove.enabled": "always",
    "javascript.updateImportsOnFileMove.enabled": "always",
    "[jsonc]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[html]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[typescriptreact]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },
    "diffEditor.ignoreTrimWhitespace": false,
    "workbench.startupEditor": "none",
    "[vue]": {
        "editor.defaultFormatter": "Vue.volar"
    },
    "audioCues.lineHasBreakpoint": "off",
    "audioCues.lineHasError": "off",
    "audioCues.lineHasInlineSuggestion": "off",
    "audioCues.noInlayHints": "off",
    "audioCues.onDebugBreak": "off",
    "audioCues.volume": 0,
    "audioCues.lineHasFoldedArea": "off",
    "go.gopath": "C:\\Users\\myuser\\go",
    "go.goroot": "C:\\Program Files\\Go",
    "files.autoSave": "afterDelay",
    "go.alternateTools": {
    
    }
}

System/Directory Info:

PS C:\Users\myuser\go\src> pwd

C:\Users\myuser\go\src


PS C:\Users\myuser\go\src> ls


    Directory: C:\Users\myuser\go\src


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         28-Jul-23  12:00 PM            122 main.go


PS C:\Users\myuser\go\src> go version
go version go1.20.6 windows/amd64
PS C:\Users\myuser\go\src> go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\myuser\AppData\Local\go-build
set GOENV=C:\Users\myuser\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\myuser\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\myuser\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.20.6
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=NUL
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\Users\myuser~1.ALG\AppData\Local\Temp\go-build1704880455=/tmp/go-build -gno-record-gcc-switches 

The problem:

一百零二 go run main.goExpected output: > Hello world Received output: 终端停顿(即使没有时间.睡眠)然后什么也不会发生

Attempted fixes: 1- Attempted to use go build then running the exe, no output was received 2- Attempted to build then redirect the output to a file: go build main.go .\main.exe >output.txt output.txt was created but empty 3- Checked console encoding : Active code page: 65001
4-Disable Antivirus or Security Software: I am using standard windows security features, no 3rd party security software installed I have even tried re-installing the Go software, restarting my pc, restarting VS code, etc
Why is my code not showing output? What can I do to fix it?
Update 1: As instructed by @mkopriva:
go mod init my_app produce the following go.mod file:

module my_app

go 1.20

我的新目录是:

PS C:\Users\myuser\Desktop\Development\go\my_app> ls


Directory: C:\Users\myuser\Desktop\Development\go\my_app


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         28-Jul-23   1:14 PM             27 go.mod
-a----         28-Jul-23   1:15 PM            125 main.go

使用Go Run Main.Go或构建然后运行没有任何变化.仍然得不到输出.

推荐答案

反病毒软件经常错误地认为围棋程序是恶意的,即使它们不是恶意的.甚至在官方围棋文件中也有a FAQ entry on this topic个.

Windows Defender通常会在编译后立即删除您的可执行文件.您可以先呼叫go build main.go,然后try 运行main.exe,而不是使用go run main.go来分别执行这两个步骤.当Windows在创建后立即删除您的可执行文件时,此操作将失败.我见过编译的DLL在超过一分钟后消失,当时我认为我是安全的,所以要注意,可执行文件可能不会在right away被删除,而是在编译后几秒钟甚至几分钟被删除.

当你呼叫go run main.go时,它会在你的%APPDATA%‘S Local路径下的一个名为go-build的临时文件夹中构建可执行文件.

您可能希望在Windows Defender中创建一个例外规则,以忽略APPDATA中的go-build个文件夹.您还应该将GOPATHGOBIN排除在防病毒扫描之外,您可能还会在那里构建和运行代码.

Go相关问答推荐

Term~T中的类型不能是类型参数,但可以是引用类型参数的切片

Go在使用HTTP代理时如何处理DNS请求?

Go Regexp:匹配完整的单词或子字符串,或者根本不匹配

创建服务时云运行触发器执行失败

go aws-lambda 与 terraform 中的 exec 格式错误

Golang Gorm Fiber / argon2.Config 未定义

Go 中将 int 切片转换为自定义 int 切片指针类型的函数

仅使用公共 api 对 alexedwards/scs 进行简单测试

在 Go 中解组编号的 XML 标签

如何以干净的方式在中间件中注入 repo 或服务?

上传图片失败,出现错误dial tcp: lookup api.cloudinary.com: no such host

如何将文件上传到 Google Drive,并与使用服务帐户和 Golang 的任何人共享

Golang:隐式 struct 匹配

在 go 中将运行命令的标准输出发送到其标准输入

如何使用 math/big 对 bigInt 进行取模?

Gorm 在保存/创建时序列化 struct

如何通过组合来自不同包的接口来创建接口?

GoReleaser 和 ssh-agent Github 操作:为什么无法读取用户名...终端提示已禁用?

Dynamodb.ScanInput - 不能使用expr.Names()(类型 map[string]*string)作为类型 map[string]string

不能使用 *T 类型的变量作为参数类型