Go語言使用時會遇到的錯誤及解決方法詳解
1、go: go.mod file not found in current directory or any parent directory
先運(yùn)行這一行代碼:
go mod init name
再運(yùn)行你的 go get 命令就好了。
2、Failed to build the application: main.go:4:2: package generateproject/routers is not in GOROOT
go env -w GO111MODULE=on go mod init name
3、 Cannot generate application code outside of application path
切換到對應(yīng)的項(xiàng)目目錄中。
4、Failed to build the application: # github.com/mattn/go-sqlite3 cgo: C compiler “gcc” not found: exec: “gcc”: executable file not found in %PATH%
安裝MinGW
5、golang軟件代碼報(bào)紅
GOPROXY=https://goproxy.cn,direct
6、goland 配置goroot找不到本地SDK
解決方法:
打開GO的安裝目錄下的C:\zsxsoftware\go1.18.4\src\runtime\internal\sys\zversion.go文件,添加一行。
const TheVersion = `go1.18.4`
這樣再配置goroot的時候就會自動找出SDK了。
7、command-line-arguments
main 包中的不同的文件的代碼不能相互調(diào)用,解決:
# 方法一 go run main.go a.go
# 方法二 # go run ./ 等同于 go run *.go go run *.go
# 方法三 go build
8、go 報(bào)錯undefined: syscall.SIGUSR1處理
在 go 的安裝目錄修改Go\src\syscall\types_windows.go,增加如下代碼:
var signals = [...]string{ // 這里省略N行 /** 找到此位置添加如下 */ 16: "SIGUSR1", 17: "SIGUSR2", 18: "SIGTSTP", } /** 兼容windows start */ func Kill(...interface{}) { return; } const ( SIGUSR1 = Signal(0x10) SIGUSR2 = Signal(0x11) SIGTSTP = Signal(0x12) )
9、包路徑中含有大寫字母時導(dǎo)致go mod tidy,go mod download等命令無法使用
解決方法:go.mod 中添加 replace
以github.com/Unknwon/com包為例:
replace github.com/Unknwon/com => github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e
到此這篇關(guān)于Go語言使用時會遇到的錯誤及解決方法詳解的文章就介紹到這了,更多相關(guān)Go語言錯誤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang服務(wù)的請求調(diào)度的實(shí)現(xiàn)
Golang服務(wù)請求調(diào)度是一種使用Go語言實(shí)現(xiàn)的服務(wù)請求管理方法,本文主要介紹了Golang服務(wù)的請求調(diào)度的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-08-08GoLang channel底層代碼實(shí)現(xiàn)詳解
Channel和goroutine的結(jié)合是Go并發(fā)編程的大殺器。而Channel的實(shí)際應(yīng)用也經(jīng)常讓人眼前一亮,通過與select,cancel,timer等結(jié)合,它能實(shí)現(xiàn)各種各樣的功能。接下來,我們就要梳理一下GoLang channel底層代碼實(shí)現(xiàn)2022-10-10Golan中?new()?、?make()?和簡短聲明符的區(qū)別和使用
Go語言中的new()、make()和簡短聲明符的區(qū)別和使用,new()用于分配內(nèi)存并返回指針,make()用于初始化切片、映射和通道,并返回初始化后的對象,簡短聲明符:=可以簡化變量聲明和初始化過程,感興趣的朋友一起看看吧2025-01-01