赞
踩
写这篇文章的目的,是为了把这些步骤记录下来。以备不时
1.在 GoPath 下新建文件夹 goproj
2.在 goproj 下新建一个 main.go 包含 main 函数
1.Visual Stdio Code Visual Studio Code 下载
2.安装 Go 扩展
3.使用 vscode 打开刚刚创建的 goproj 文件夹
4.配置 launch.json 文件
{
"name": "Go Debug",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "main.go",
"env": {
"GOPATH": "D:/IDE/vsc-code/GoCode", //这里填 环境变量 GOPATH,vscode调试会用到
"GOROOT": "D:/Go" //这里填 Go 的安装目录
}
//下面这个是附加到进程调试
{
"name": "Attach to Process",
"type": "go",
"request": "attach",
"mode": "remote", // "local"
"port": 2345, //默认就是 2345 爱改不改
"host": "192.168.234.128",
"processId": 4532 //注意这里进程id 是远程 机器上 dlv 进程的id
}
}
编写自定义包,需要将自己的包文件夹放在 Go安装目录/src 下。这里定义了一个 mytest 包,包中包含两个 go 文件,mytest1.go 和 mytest2.go 文件。文件编写后依次执行以下命令
go build mytest
go install mytest
成功后 D:\Go\pkg\windows_amd64\mytest.a 文件
- package main
-
- import (
- "fmt"
- "mytest" //引入自己的包
- )
-
-
- func main() {
-
- println("hello go!")
- mytest.Functest() //使用自定义包中函数
- fmt.Printf("\n")
- mytest.Functest2() //使用自定义包中函数
-
- }
mytest1.go Go安装目录/mytest/mytest1.go
- package mytest //自定义包名
-
- import "fmt"
-
- func Functest() {
- fmt.Printf("调用mytest1.go funtest")
- }
mytest2.go Go安装目录/mytest/mytest2go
- package mytest //自定义包名
-
- import "fmt"
-
- func Functest2() {
- fmt.Printf("调用mytest2.go funtest")
- }
必要说明:这两个go文件,都在 包 mytest 之下,都属于mytest包
把你的 pkg 包放到安装目录 GOROOT/src 下面去
把你的项目做成一个模块,具体可以参考 How to Write Go Code - The Go Programming Language
go mod init goproj //初始化一个模块,启动文件就是 goproj.go 其中包含 main 函数cd cd mytest //my test 在 goproj 目录下面,这里不需要在初始化模块了
go build //mytest 只是个package build 内容在 go build cache 文件,可以不 build
- package main
-
- import (
- "fmt"
- "goproj/mytest" // 引入 mytest package
- "strconv"
- "time"
- )
go install goproj //会生成一个 goproj 可执行文件,位于 GOBIN 目录下,这个是一个 module build 不生效,
go install goproj -gcflags "all=-N -l" //用于调试的 版本
具体可以参考 How to Write Go Code - The Go Programming Language
注:因为在 Linux 我把项目弄成一个module了,所以 main.go 相应改成了包名 goproj.go
众所周知服务器开发一般是在 Linux 下,所以这里配置远程Linux附加调试
export GOPROXY=https://goproxy.io,direct //代理 方便下载 Go 调试工具
go install github.com/go-delve/delve/cmd/dlv@latest
dlv attach <pid> --listen=:2345 --headless --api-version=2 --log //dlv附加
之后就是 启动 vs code 进行调试了,vscode 代码按理来说需要和 远程机器上的一致。要是不一致,我也不知道会怎么样咯。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。