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,如果也打不开,就是系统策略问题

相关文章
|
4月前
|
JSON 安全 测试技术
别再只用 `net/http` 了!Go 高并发场景的“涡轮增压”方案:`fasthttp`
`fasthttp` 是由 Valyala 开发的高性能 HTTP 引擎,专为高吞吐、低延迟、低内存场景优化。相比 `net/http`,它快 6 倍+、零堆分配、支持百万级连接,适合 API 网关、实时服务等场景,但仅支持 HTTP/1.1。(239 字)
416 0
|
2月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
41646 72
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
网络协议 Ubuntu Linux
CentOS 8及以上版本配置IP的方法,你 get 了吗
接上篇文章讲了 Ubuntu 18及以上版本的配置方法,本文再来讲讲 CentOS 8 及以上版本配置 IP 的方法。
934 0
CentOS 8及以上版本配置IP的方法,你 get 了吗
|
3月前
|
设计模式 安全 Java
Golang 的静态特性如何减少对经典设计模式的依赖
本文揭示Go语言如何用简洁性消解Java经典设计模式:因静态类型、隐式接口、组合优先、函数一等公民及channel原语,单例、工厂、策略、装饰器、观察者等模式大幅简化或不再需要。Go不是不用模式,而是“少想模式,多想简单”。
146 1
|
10月前
|
存储 运维 数据可视化
Jaeger,一个链路追踪神器!
在微服务架构中,一次请求可能经过多个服务节点,带来复杂的调用关系。如何追踪请求全链路、快速定位问题、优化性能,成为开发与运维的关键挑战。链路追踪(Tracing)技术应运而生,而 Jaeger 作为业界主流的开源分布式链路追踪系统,提供了强大的支持。本文将带你全面了解 Jaeger 的核心概念、架构原理、使用方式及实际项目中的落地方法,助你快速掌握链路追踪技术,提升系统的可观测性与稳定性。
1717 2
Jaeger,一个链路追踪神器!
|
8月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
691 0
|
SQL 缓存 Cloud Native
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
NSDI'24 | 阿里云飞天洛神云网络论文解读——《Poseidon》揭秘新型超高性能云网络控制器
592 63
|
数据安全/隐私保护 开发者
六、ArkTS 常用组件-按钮(Button)/切换按钮(Toggle)/文本输出(TextInput)
`Button` 组件是 HarmonyOS 应用开发中的基本组件之一,主要用于响应用户的点击操作。它支持两种使用方式:不包含子组件和包含子组件。不包含子组件时,`Button` 通过 `label` 属性设置按钮上的文字,同时提供 `options` 参数来配置按钮类型和点击效果;包含子组件的方式则允许更灵活的内容展示,如图片或复杂布局,此时无需设置 `label`。此外,`Button` 组件还提供了设置背景颜色、边框圆角等样式的方法,以及绑定点击事件的功能,使开发者能够轻松实现丰富的交互体验。
1063 0
六、ArkTS 常用组件-按钮(Button)/切换按钮(Toggle)/文本输出(TextInput)
|
SQL 并行计算 数据挖掘
一份写给数据工程师的 Polars 迁移指南:将 Pandas 速度提升 20 倍代码重构实践
Polars作为现代化的数据处理框架,通过先进的工程实践和算法优化,为数据科学工作者提供了高效的数据处理工具。在从Pandas迁移时,理解这些核心概念和最佳实践将有助于充分发挥Polars的性能优势。
1175 4