我是 Go 新手,目前正在阅读我购买的一些有关该主题的教科书。我使用 BitDefender Antivirus,它似乎间歇性地将 go-build 文件标记为病毒,并提供以下信息:
“文件 C:\Users\Marcus\AppData\Local\Temp\go-build591304050 001 xe 211.exe 感染了 Gen:Variant.Tedy.601131。该威胁已被成功阻止,您的设备是安全的”
当我在 gitbash 控制台中运行
go run main.go
时会发生这种情况。解决方法是什么?每次运行命令时,Go 都会在 \AppData\Local\Temp 中创建一个新目录,因此我很谨慎地将整个 Temp 文件夹添加为我的防病毒软件中的排除项。
我尝试将 go 环境变量 GOBIN 设置为 \Temp 中名为“GOTMPDIR”的目录。
cmd
set GOBIN=C:\GOTMPDIR
这并没有改变 go env 变量,当用
go env GOBIN
检查它的值时,它会打印一个空行。
我找到了适合我的特定用例的答案。我在 vscode 项目(或普通的 GitBash 窗口)中使用 GitBash 终端运行。为了修复它,我编辑了 bashrc 文件 ->
nano ~/.bashrc
并添加了行“export GOTMPDIR="Path\To\Dir”。
事实证明 GOTMPDIR 是一个 go env 变量,它确定临时存储中间构建文件的目录。在我的项目中运行
go run main.go
后,输出会相应发送到控制台,但临时目录仍为空。
此修复允许我继续学习过程,但我不确定此修复是否适用于更高级的用例或所有防病毒软件。