日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編百草為你帶來(lái)解決“包foo不在GOROOT中”的問(wèn)題的方法。當(dāng)我們?cè)谑褂肎o語(yǔ)言編程時(shí),有時(shí)會(huì)遇到這樣的錯(cuò)誤提示。這個(gè)錯(cuò)誤通常意味著我們正在嘗試導(dǎo)入一個(gè)包,但是該包不在Go語(yǔ)言的安裝目錄(GOROOT)中。在本文中,我們將為你詳細(xì)介紹如何解決這個(gè)問(wèn)題,讓你的Go代碼能夠順利導(dǎo)入所需的包。

問(wèn)題內(nèi)容

我正在嘗試編譯我的 Go 項(xiàng)目,但修復(fù)編譯錯(cuò)誤的方法并不明顯。簡(jiǎn)化示例如下。

爸爸6a68db90e55e62259c35b03c780c3

現(xiàn)在我使用 make dep (與 Makefile,如下)構(gòu)建 go.mod 并嘗試獲取所有依賴項(xiàng),但這并沒(méi)有獲取它們,因?yàn)槲乙恢笨吹?package foo is not in GOROOT 錯(cuò)誤。

# filename: ~/myprojects/automate_things/Makefile
GOOS=linux

GO_SOURCE_FILE=automate_things.go
GO_BINARY_FILE=automate_things
GO_BIN_DIR=bin/

.SILENT: build
.DEFAULT_GOAL := build

build:
        -make fmt
        make dep
        go build $(GO_SOURCE_FILE)
        if [ "$(PLATFORM)" = "Linux" ]; then \
                GOARCH=amd64 GOOS=linux go build -ldflags "-s -w" -o ./$(GO_BINARY_FILE) $(GO_SOURCE_FILE); \
        elif [ "$(PLATFORM)" = "Darwin" ]; then \
                GOARCH=amd64 GOOS=darwin go build -ldflags "-s -w" -o ./$(GO_BINARY_FILE) $(GO_SOURCE_FILE); \
        fi
.PHONY: build

fmt:
        go fmt $(GO_SOURCE_FILE)
.PHONY: fmt

dep:
        -rm go.mod
        -rm go.sum
        go mod init automate_things
        go mod tidy
        go mod download
.PHONY: dep

登錄后復(fù)制

這是我的~/.bashrc,它導(dǎo)出了幾個(gè)相關(guān)的go環(huán)境變量。

# filename: ~/.bashrc
# Build the default GOROOT (re-run the command as root)

mkdir -p /usr/local/go
export GOPROXY=https://proxy.golang.org
mkdir -p ~/gobin/bin
export GOPATH=~/gobin
#export GO111MODULE=auto

export PATH=$PATH:$GOPATH/bin

登錄后復(fù)制

這是go.mod,是我的Makefile(make dep)生成的

// go.mod
module automate_things

go 1.20

require (
        github.com/gleich/logoru v0.0.0-20230101033757-d86cd895c7a1
        github.com/melbahja/goph v1.4.0
)

require (
        github.com/fatih/color v1.10.0 // indirect
        github.com/kr/fs v0.1.0 // indirect
        github.com/mattn/go-colorable v0.1.8 // indirect
        github.com/mattn/go-isatty v0.0.12 // indirect
        github.com/pkg/errors v0.9.1 // indirect
        github.com/pkg/sftp v1.13.5 // indirect
        golang.org/x/crypto v0.6.0 // indirect
        golang.org/x/sys v0.5.0 // indirect
)

登錄后復(fù)制

這是我在 make dep 時(shí)看到的內(nèi)容

$ make
make[1]: Entering directory '/home/me/myprojects/automate_things'
go fmt automate_things.go
make[1]: Leaving directory '/home/me/myprojects/automate_things'
make[1]: Entering directory '/home/me/myprojects/automate_things'
rm go.mod
rm go.sum
go mod init automate_things
go: creating new go.mod: module automate_things
go: to add module requirements and sums:
        go mod tidy
go mod tidy
go: finding module for package github.com/melbahja/goph
go: finding module for package github.com/gleich/logoru
go: found github.com/gleich/logoru in github.com/gleich/logoru v0.0.0-20230101033757-d86cd895c7a1
go: found github.com/melbahja/goph in github.com/melbahja/goph v1.4.0
go mod download
make[1]: Leaving directory '/home/me/myprojects/automate_things'
../../gobin/pkg/mod/golang.org/x/[email protected]/ssh/transport.go:8:2: package bufio is not in GOROOT (/home/me/src/bufio)
../../gobin/pkg/mod/github.com/mattn/[email protected]/noncolorable.go:4:2: package bytes is not in GOROOT (/home/me/src/bytes)

登錄后復(fù)制

因此,讓我們嘗試使用 go get 和 sudo 直接下載,以解決任何潛在的權(quán)限問(wèn)題…

$ sudo /home/me/bin/go get github.com/melbahja/goph
go: downloading github.com/melbahja/goph v1.4.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/pkg/sftp v1.13.5
go: downloading golang.org/x/crypto v0.6.0
go: downloading github.com/kr/fs v0.1.0
go: downloading golang.org/x/sys v0.5.0
github.com/melbahja/goph imports
        context: package context is not in GOROOT (/usr/local/go/src/context)
github.com/melbahja/goph imports
        errors: package errors is not in GOROOT (/usr/local/go/src/errors)
github.com/melbahja/goph imports

登錄后復(fù)制

問(wèn)題

我的 go 二進(jìn)制文件位于 ~/bin/go 中。

在我的 Makefile 中獲取/指定依賴項(xiàng)(不列出無(wú)盡的子依賴項(xiàng))并使該項(xiàng)目編譯的最有效方法是什么?我想修復(fù)上面列出的所有編譯問(wèn)題。

RTFM 不是答案。 RTFM 提供了有效文檔的直接鏈接。

解決方法

問(wèn)題標(biāo)題(以及最初的問(wèn)題正文)提到了 GOROOT

您不應(yīng)將 GOROOT 設(shè)置為任何內(nèi)容。
我根本不知道為什么 Go 仍然在錯(cuò)誤消息中提到 GOROOT

簡(jiǎn)短的故事,您的 Go 安裝似乎已損壞…修復(fù)它:

    從 下載適合您的處理器架構(gòu)的 Go 源代碼樹(shù)(對(duì)于典型的 Linux 安裝,通常是 amd64) go.dev/dl

    cd /usr/local
    將 tarball 提取為 root
    cd ~/bin
    ln -s /usr/local/go/bin/go go
    ln -s /usr/local/go/bin/gofmt gofmt
    cd 放入您的項(xiàng)目目錄中,并按照您設(shè)置 Makefile 的方式進(jìn)行構(gòu)建?,F(xiàn)在應(yīng)該可以工作了。

分享到:
標(biāo)簽:Go語(yǔ)言 overflow 編譯錯(cuò)誤
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定