本文链接: https://blog.csdn.net/lishuangquan1987/article/details/124349282
net拨号时,如果服务端没打开,返回的net.Conn对象为空
t, _ := net.Dial("tcp", "127.0.0.1:12345")
fmt.Println(t==nil)
fmt.Printf("关闭前:%v", t)
t.Close()
fmt.Printf("关闭后:%v", t)
time.Sleep(time.Second * 5)
fmt.Printf("关闭后,休眠5s:%v", t)
当服务端: 127.0.0.1:12345 没打开时,打印如下:

可以看到 t==nil 为 true,所以小心对net.Conn的方法调用
vscode调试go的配置文件

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
// "program": "${fileDirname}"
"program": "${workspaceFolder}/main.go",
}
]
}
cgo: C compiler “gcc” not found: exec
系统:Win11 64位。 go 1.18.1
当引用了gorm操作Sqlite时,go build报如下错误:
cgo: C compiler “gcc” not found: exec: “gcc”: executable file not found in %PATH%
解决办法:
- 参考文章:
https://blog.csdn.net/weixin\_42586723/article/details/121057647
- 具体过程:
-
到网址:https://sourceforge.net/projects/mingw-w64/files/
下载
x86_64-win32-seh:

2. 解压下载的文件: x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z

3. 将解压后的 bin 的绝对路径加入环境变量 Path
例如我的bin绝对路径是: `D:\Download\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\mingw64\bin`,我需要将它加入到Path环境变量:

4. 验证是否安装好
打开终端,输入 gcc -v:

4. 编译go
go build
注意: 如果安装gcc之前打开了VSCode没有关闭过,需要关闭后再打开才能编译不报错
Windows下编译go到Centos运行
1.VSCode新建终端:

2.从 PowerShell 切换到 Command Prompt
注意:在Powershell中不能这样编译go,会不成功

3.依次敲入如下命令:
set GOOS=linux
set GOARCH=amd64
go build
就可以看到生成了一个文件
注意:只要此终端 Command Prompt 没有变比,以后只需要输入go build就行,如果关闭之后重新打开,则需要重新设置 GOOS 和 GOARCH
评论区