簡體   English   中英

Go:找不到包“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 包的正確位置。

不要使用apt-get安裝 ,只需下載二進制文件並將它們解壓縮到您的主(或任何)目錄。

要在終端中使用go tool ,您必須將export PATH=$PATH:$GOROOT/bin行添加到~/.bashrc

失敗后運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM