我使用VSCode设置了Go语言的调试器,直到它能正常运行
这是我自己用的备忘录。
我将记录我遇到的困难之处。
基本上可以按照以下文章的方式完成。
用Visual Studio Code配置Go语言的调试环境。
此外,由于我对Go还是初学者,所以可能会存在不准确的描述。
环境
-
- macOS Catalina
-
- Go 1.16.3
-
- VS Code 1.55.2
$GOPATH を設定済み
$GOPATH/bin を環境変数 $PATH へ追加済み
「経緯」的中文表述:
经过或过程。
我打算做以下的事情。
透过Go语言一探系统编程的世界
我使用 IntelliJ IDEA 社区版来运行Go的调试器。
然而,根据目前的比较表来看,在IntelliJ IDEA Community版本中似乎无法使用Go语言。
IntelliJ IDEA
IntelliJ IDEA 是一款集成开发环境。
因此,我們的目標是在VS Code中建立相同的環境。
迷上了这个点。
去拿失败了。
使用go get命令失败,出现以下错误。
$go get github.com/golang/example/hello: module github.com/golang/example/hello: Get "https://proxy.golang.org/github.com/golang/example/hello/@v/list": x509: certificate is valid for xxxxxx, not proxy.golang.org
发生这种现象的原因是因为在进行原因调查时发现,相关环境中的proxy.golang.org被阻止了。
只需要一个选项,以下是对该句的中文释义:只要执行以下命令,就可以避免使用 proxy.golang.org 引起的问题。
# 設定を上書き
$go env -w GOPROXY=direct
# 確認
$go env |grep GOPROXY
GOPROXY="direct"
由于这是一个环境相关的问题,所以在许多情况下,这种现象似乎不会发生。
在通过VS Code执行Go时会失败。
创建一个用于“Hello World”的文件。
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
从终端上看,成功了。
$go run hello.go
hello world
然而,如果在VS Code中打开该文件并从VS Code的“运行和调试”选项中执行,则会出现以下错误。
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
exit status 1
Process exiting with code: 1
也许如果设置了 launch.json,可能会运行得很好,但是尝试了一下,仔细查看以下的指示,但没有成功。
用于Golang的VScode的Go插件。
当再次检查错误时,发现缺少了 go.mod 文件,以此关键词进行调查。
使用Go Modules和多模块结构回到Go Home的方法。
根据上述文章进行尝试,取得了成功。
首先,在终端中执行以下操作。
# ディレクトリ作成
$mkdir hello-module
# 移動
$cd hello-module
# カレントディレクトリに go.mod を作る
$go mod init hello-module
$ls
go.mod
# こんなことが書いてある
$cat go.mod
module hello-module
go 1.16
# helloworld を書く
$vi hello.go
# Terminal 上で動くことを確認
$ go run hello.go
hello world
然后,打开VS Code并在上述文件夹(这个例子中是hello-module)中执行相同的”运行和调试”命令,成功确认了”hello world”的输出。
另外,还可以通过设置断点来进行调试等操作来确认。
看到以下的内容可能是由于模块兼容模式所造成的影响,但由于其可以正常运行,所以暂时不会进行进一步的调查。
Go语言的模块管理【1.16版本修订版】。