Goland 解决在windows上 Cannot run program “D:\atool\goexe\myApp.exe 无法进行正常调试问题

简介: GoLand运行Go程序时遇“应用程序控制策略已阻止此文件”错误,主因是Windows安全机制拦截未签名的.exe。推荐两法:①右键属性→勾选“解除锁定”;②用gops关联已启动进程调试,彻底绕过拦截。(239字)

🔍 错误信息解读

最近开发go项目,下载goland进行开发,但是却经常遇到goland会报这样的错:
在这里插入图片描述

CreateProcess error=4551, 应用程序控制策略已阻止此文件

生活化比喻

你的程序 = 快递员
Windows 安全策略 = 小区门卫
门卫:"没工牌、没登记,不准进!" 🚫

错误原因

  • GoLand 编译的 .exe 文件被标记为"来自互联网"
  • Windows SmartScreen/WDAC/AppLocker 等安全机制拦截
  • 文件缺少数字签名或可信来源证明

🛠️ 解决方案(按推荐顺序)

✅ 方案 1:解除文件锁定(最简单)

操作步骤

  1. 找到被阻止的文件目录:

    D:\atool\goexe\
    
  2. 右键 go_build_*.exe属性

  3. 在"常规"选项卡底部,勾选 ✅ 解除锁定

  4. 点击"应用" → "确定"

  5. 重新运行 GoLand 项目

💡 如果看不到"解除锁定"选项,继续方案 2。


实测第一种方案只是有时候有效果,后面仍然汇报一样的错误,因此为了不阻断开发调试,引入下面这个方法彻底解决。

✅ 方案 2:Goland 关联已启动的go程序

goland支持通过关联一个已经启动的go程序来进行启动和debug。
首先在终端执行如下命令

go install github.com/google/gops@latest

然后执行如下命令构建go项目

go build -gcflags="all=-N -l" -o myApp.exe

启动项目

.\myApp.exe

然后使用快捷键ctrl alt f5打开关联的界面

image.png

image.png

选择myApp就可以开始打断点调试你的程序了。

image.png


💡 额外小贴士

  • 🔁 修改策略后,重启 GoLand 或执行 File → Invalidate Caches
  • 📁 确保输出目录有写入和执行权限
  • 🧪 测试方法:手动双击 .exe,如果也打不开,就是系统策略问题

相关文章
|
2月前
|
JSON 安全 测试技术
别再只用 `net/http` 了!Go 高并发场景的“涡轮增压”方案:`fasthttp`
`fasthttp` 是由 Valyala 开发的高性能 HTTP 引擎,专为高吞吐、低延迟、低内存场景优化。相比 `net/http`,它快 6 倍+、零堆分配、支持百万级连接,适合 API 网关、实时服务等场景,但仅支持 HTTP/1.1。(239 字)
265 0
|
安全 网络安全 API
163邮箱IMAP服务器设置方法
```markdown 使用IMAP协议同步163邮箱:登录邮箱→设置→账户→IMAP/SMTP→开启服务→配置服务器(imap.163.com:993, SSL/TLS)→设置用户名和密码→保存并在邮件客户端添加账号。确保多设备邮件同步,定期更新设置。[≤240字符] ```
|
29天前
|
编译器 Go 开发者
Go 语言为什么禁止“声明了但不用“的变量?
Go强制要求使用已声明变量,未用则编译失败。此举旨在提前暴露逻辑错误、减少代码噪音、明确开发意图(如用`_`显式忽略)。本质是用编译时约束提升代码质量与可维护性。(239字)
|
29天前
|
安全 程序员 Go
Go 结构化并发:给 goroutine 装上“安全带“
结构化并发让并发任务“有组织、可管理”:子任务生命周期受控、错误自动传播、超时统一取消。Python/Kotlin 通过语法糖内置支持;Go 则提供 `errgroup`/`context`/`WaitGroup` 等积木,强调显式控制与组合自由——安全与灵活,各有所重。(239字)
|
1月前
|
设计模式 安全 Java
Golang 的静态特性如何减少对经典设计模式的依赖
本文揭示Go语言如何用简洁性消解Java经典设计模式:因静态类型、隐式接口、组合优先、函数一等公民及channel原语,单例、工厂、策略、装饰器、观察者等模式大幅简化或不再需要。Go不是不用模式,而是“少想模式,多想简单”。
|
8月前
|
存储 运维 数据可视化
Jaeger,一个链路追踪神器!
在微服务架构中,一次请求可能经过多个服务节点,带来复杂的调用关系。如何追踪请求全链路、快速定位问题、优化性能,成为开发与运维的关键挑战。链路追踪(Tracing)技术应运而生,而 Jaeger 作为业界主流的开源分布式链路追踪系统,提供了强大的支持。本文将带你全面了解 Jaeger 的核心概念、架构原理、使用方式及实际项目中的落地方法,助你快速掌握链路追踪技术,提升系统的可观测性与稳定性。
1576 2
Jaeger,一个链路追踪神器!
|
29天前
|
运维 前端开发 中间件
Go Context 取消原因:不只是 “context canceled“ 那么简单
Go 1.20 引入 `context.WithCancelCause`,为 context 取消机制添加可追溯的“原因”——告别模糊的 `context.Canceled`,实现精准故障定位。配合手动 Timer 或嵌套 Context,兼顾原因明确性与 deadline 语义,提升可观测性与运维效率。(239字)
123 3
|
3月前
|
Cloud Native Java 编译器
阿里云可观测联合 Datadog 发布 OpenTelemetry Go 自动插桩工具
面对 Go 语言长期缺乏成熟自动插桩方案的困境,阿里云联合 Datadog 推出 OpenTelemetry Go 编译时插桩工具,无需修改代码,只需 ./otel-go build,即可为 HTTP、gRPC、Redis 等组件自动注入链路追踪与指标采集能力。现已开源,欢迎试用!
356 49
|
SQL 缓存 Cloud Native
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
515 63