golang 开发程序被 windows defender 报病毒

内容纲要

背景

使用 golang + fyne 库开发 gui 程序,在编译时,windows defender 可能会告警,导致编译失败

go run main.go
command-line-arguments: open C:\Users\refusea\AppData\Local\Temp\go-build1839709761\b001\exe\main.exe: Operation did not complete successfully because the file contains a virus or potentially unwanted software.

也有时候编译不告警,但是使用 -ldflags -H=windowsgui 参数编译就会报警,导致编译失败。

解决方案

指定 go 的临时目录

# 在 c 盘根目录创建 gotemp 目录
mkdir c:\\gotemp

修改环境变量 GOTEMDIR 指向该目录

将目录加入 defender 白名单

【设置】-【隐私和安全性】-【Windows 安全中心】-【病毒与威胁防护】-【管理设置】-【排除项】

点击【添加或删除排除项】-【添加排除项】,选择【文件夹】

c:\gotemp 添加进去

打完,收工

回头一笑

如果你是 vscode,可能会发现无效,这应该是因为你的 vscode 的终端是 powershell,可以执行以下命令查看下环境变量

# powershell 查看环境变量
$Env:GOTMPDIR
C:\gotemp

# cmd 查看环境变量
set GOTMPDIR
GOTMPDIR=C:\gotemp

如果你确信你的环境变量设置正确,那么重启下 vscode,应该就 ok 了

golang 开发程序被 windows defender 报病毒

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top
粤ICP备2020114259号 粤公网安备44030402004258