목차
问题内容
解决方法
백엔드 개발 Golang Go 설치가 성공했지만 간단한 Hello World가 출력되지 않습니다.

Go 설치가 성공했지만 간단한 Hello World가 출력되지 않습니다.

Feb 12, 2024 am 11:21 AM
언어로 가다

Go安装成功但没有输出简单的Hello World

php小编小新在Go语言学习过程中,有时可能会遇到安装成功但没有输出简单的Hello World的情况。这种情况可能是由于编码问题、环境配置错误或代码书写不正确等原因导致的。本文将为大家解决这一问题,提供一些常见的解决方法和技巧,以帮助大家顺利输出Hello World并顺利进行Go语言学习。

问题内容

使用 windows 11 pro,使用安装程序安装 go。 这是我的 main.go 文件:

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.println("hello world")
    time.sleep(2 * time.second)
}
로그인 후 복사

以及我能想到的所有相关信息: powershell版本: ps c:\users\fares.alghazy\go\src> $psversiontable.psversion

主要次要构建修订

5 1 22621 1778

go 扩展设置.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": {
    
    }
}
로그인 후 복사

系统/目录信息:

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
로그인 후 복사

问题:

动作运行: go 运行 main.go 预期输出: > 你好世界 收到的输出: 终端停止(即使没有 time.sleep)然后什么也没有发生

尝试修复: 1-尝试使用 go build 然后运行 ​​exe,没有收到输出 2-尝试构建然后将输出重定向到文件: go 构建 main.go .\main.exe >output.txt output.txt 已创建但为空 3-检查控制台编码:活动代码页:65001

4-禁用防病毒或安全软件:我使用标准 windows 安全功能,未安装第 3 方安全软件 我什至尝试过重新安装go软件、重启电脑、重启vs code等

为什么我的代码没有显示输出?我可以做什么来修复它?

更新1: 按照@mkopriva 的指示:

go mod init my_app 生成以下 go.mod 文件:

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 或构建然后运行没有任何变化。仍然没有得到输出。

解决方法

Go 程序经常被防病毒软件错误地识别为恶意软件,尽管它们并非恶意软件。 Go 官方文档中甚至还有有关此主题的常见问题解答条目

Windows Defender 通常会在编译后立即删除您的可执行文件。您可以不使用 go run main.go ,而是分别执行两个步骤,首先调用 go build main.go ,然后尝试运行 main.exe 。当 Windows 在创建后立即删除可执行文件时,此操作将会失败。我曾见过编译的 DLL 在一分多钟后消失,当时我以为自己是安全的,因此请注意,可执行文件可能不会立即被删除,但可能会在编译后几秒甚至几分钟被删除。

当您调用 go run main.go 时,它将在 %APPDATA%Local 路径下的临时文件夹中构建可执行文件,该文件夹名为 go-build

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

위 내용은 Go 설치가 성공했지만 간단한 Hello World가 출력되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Redis Stream을 사용하여 GO Language에서 메시지 대기열을 구현할 때 User_ID 유형 변환 문제를 해결하는 방법은 무엇입니까? Redis Stream을 사용하여 GO Language에서 메시지 대기열을 구현할 때 User_ID 유형 변환 문제를 해결하는 방법은 무엇입니까? Apr 02, 2025 pm 04:54 PM

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

Go 's Crawler Colly의 큐 스레드의 문제는 무엇입니까? Go 's Crawler Colly의 큐 스레드의 문제는 무엇입니까? Apr 02, 2025 pm 02:09 PM

Go Crawler Colly의 대기열 스레딩 문제는 Colly Crawler 라이브러리를 GO 언어로 사용하는 문제를 탐구합니다. � ...

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? 골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Apr 02, 2025 pm 05:09 PM

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Go Language 개발을 위해 Goland를 사용할 때 많은 개발자가 사용자 정의 구조 태그를 만날 것입니다 ...

이동 중에 왜 println 및 string () 함수로 문자열이 다른 효과를 갖는 이유는 무엇입니까? 이동 중에 왜 println 및 string () 함수로 문자열이 다른 효과를 갖는 이유는 무엇입니까? Apr 02, 2025 pm 02:03 PM

Go Language의 문자열 인쇄의 차이 : println 및 String () 함수 사용 효과의 차이가 진행 중입니다 ...

GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? Apr 02, 2025 pm 02:06 PM

Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

GO 언어에서 'var'와 'type` 키워드 정의 구조의 차이점은 무엇입니까? GO 언어에서 'var'와 'type` 키워드 정의 구조의 차이점은 무엇입니까? Apr 02, 2025 pm 12:57 PM

GO 언어에서 구조를 정의하는 두 가지 방법 : VAR과 유형 키워드의 차이. 구조를 정의 할 때 Go Language는 종종 두 가지 다른 글쓰기 방법을 본다 : 첫째 ...

GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? Apr 02, 2025 pm 04:12 PM

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

sql.open을 사용할 때 DSN이 비어있을 때 오류가 발생하지 않습니까? sql.open을 사용할 때 DSN이 비어있을 때 오류가 발생하지 않습니까? Apr 02, 2025 pm 12:54 PM

sql.open을 사용할 때 DSN에 오류가 발생하지 않는 이유는 무엇입니까? Go Language, SQL.open ...

See all articles