![](/img/trans.png)
[英]For simple go program Vscode gives error could not import fmt (cannot find package "fmt" )
[英]Go: cannot find package “fmt” error
我正在嘗試遵循一個簡單的Hello, World
應用程序:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}
但是當我構建並運行它時,我收到以下錯誤:
main.go:5:2: cannot find package "fmt" in any of:
/home/user/go/src/pkg/fmt (from $GOROOT)
/home/user/gocode/src/fmt (from $GOPATH)
package test_program
imports runtime: cannot find package "runtime" in any of:
/home/user/go/src/pkg/runtime (from $GOROOT)
/home/user/gocode/src/runtime (from $GOPATH)
這是go env
的輸出:
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/gocode"
GORACE=""
GOROOT="/home/user/go"
GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
取消設置 GOROOT - go 工具知道它們應該在哪里,你很少需要設置它。
您已將其設置為/home/user/go
並且除非您在那里構建/home/user/go
,否則它不太可能是找到 fmt 包的正確位置。
失敗后運行go run case.go
命令。 我嘗試在新的 ubuntu 16.04 環境中使用 apt 安裝。
apt install golang
在此之后, go run case.go
將按預期運行。
我想問題是你永遠不應該設置 GOROOT 。
一旦你發現GOROOT不像“/usr/lib/go-{version}”,
你已經在錯誤的情況下。 立即使用unset GOROOT
。 將它添加到/etc/profile
或~/profile
或~/.bashrc
等以永久生效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.