Post

go语言交叉编译及vscode调试配置

最近想学一门新语言,选来选去,学了go。

其实总体来说,上手挺简单的,go规范挺严格的,我觉得这点是真的不错,很适合用于团队开发。

比如java中,if 后的括号可以接在if后面如:if() { 还有人喜欢新开一行, 如:

1
2
3
4
5
6
7
8
// 方式1
if(a == 1) {
}

// 方式2
if(a == 1)
{
}

这种在go中就定死了,不能新开一行,这确实减少了很多格式规范问题。所以我觉得它用于团队开发挺合适的。

还有一点就是,他可以打包成二进制文件。这个对于做某些不交付源码的项目真的很舒服。

安装go开发环境挺简单的,直接官方下载,然后一路next就安装成功了。

go语言可以用vscode进行开发调试,这里提醒几个坑:

  1. vscode需要安装go语言插件
  2. vscode需要安装dlv, 这是go语言的debug工具
  3. 有些时候,可能你会安装不成功,这是因为环境变量可能没有正确配置,检查下GOARCHGOOS配置,GOARCH可以取值参考
  4. 如果安装dlv提示不支持,考虑更改上述环境变量,我就是把GOARCH更改为amd64后才能安装成功

那么第二点就是交叉编译配置:

其实编译命令也挺简单的,windows cmd执行下面命令即可:

# 编译linux执行程序
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -ldflags="-s -w" -o server_linux.exe main.go && upx -9 server_linux.exe


# 编译windows执行程序
set CGO_ENABLED=0
set GOOS=windows
set GOARCH=amd64
go build -ldflags="-s -w" -o server_win.exe main.go && upx -9 server_win.exe

This post is licensed under CC BY 4.0 by the author.