Golang 编译出现: 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息

2020-04-26 23:48:36 +08:00
 SaigyoujiYuyuko

今天想学习一下 golang 然后简单写了个小项目。测试运行的时候报错:

fork/exec C:\Users\ADMINI~1\AppData\Local\Temp\go-build109468398\b001\exe\shikigami.exe: This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the
software publisher.

然后我 Google 了一下,上面说是包名没写对 但是我的包名确实是正确的 package main 我折腾了很久 发现无果 重启后正常运行了 但是好景不长 过了大概几十分钟又是这个问题了.

这是我的环境

go version go1.14.2 windows/amd64
Windows10 1909 amd64
使用 Goland 2020.1

set GO111MODULE=auto
set GOARCH=amd64
set GOBIN=
set GOCACHE=E:\Go\buildcache
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\Administrator\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,https://gocenter.io,https://goproxy.io,direct
set GOROOT=E:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=E:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fmessage-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build977297266=/tmp/go-build -gno-record-gcc-switches

代码只是简单的 Hello World

各位有什么建议嘛

5612 次点击
所在节点    Go 编程语言
17 条回复
brader
2020-04-26 23:55:03 +08:00
不想折腾的话,尝试下载一个旧点版本的 GO ?
SaigyoujiYuyuko
2020-04-26 23:56:17 +08:00
@brader 我试过 1.13.1 和 1.14 了 好像都是这样子的..
ysc3839
2020-04-26 23:58:44 +08:00
把编译出来的 exe 发来看看?
SaigyoujiYuyuko
2020-04-27 00:07:00 +08:00
ysc3839
2020-04-27 00:39:04 +08:00
看样子你是用了 mingw64 编译?之前在网上见过类似的问题,用 mingw64 编译出来的文件 PE 头是错的。刚刚看了你发的 exe 也是这个样子,MZ 头没问题,但是 PE 头有问题。
我自己没遇到过这个问题,也不知道怎么解决。
ccav
2020-04-27 00:55:10 +08:00
用 tdm gcc
SaigyoujiYuyuko
2020-04-27 09:22:46 +08:00
@ysc3839
@ccav
各位我试图换到 tdm gcc
然后我成功运行了一次 下一次就.....
!(pic)[https://ae01.alicdn.com/kf/Ud88ba186d98e46969a505b9f8f5a7f39J.png]
ysc3839
2020-04-27 09:41:09 +08:00
@SaigyoujiYuyuko 我只能说类似问题听过几次了,不过和你遇到的有细微差异,别人是编译出来的 exe MZ 头正常,PE 头不正常,会被系统识别为 16 位程序,但你这个是连 MZ 头也不正常。
另外,我用英文搜了下 "mingw invalid pe header",似乎没有找到相关问题,也不知道该用什么关键词搜索。
SaigyoujiYuyuko
2020-04-27 09:42:01 +08:00
@ysc3839 我也使用过类似的关键词查询 也没有搜到啥 感谢了
SaigyoujiYuyuko
2020-04-27 09:42:46 +08:00
我甚至发现 这东西上传到哈珀啥信息都没有
https://habo.qq.com/file/showdetail?pk=ADcGZV1oB2cIMVs5U2I%3D
SaigyoujiYuyuko
2020-04-27 15:50:31 +08:00
各位我重启后过了几个小时好像没毛病了 具体解决方法就是 安装 tdm gcc 就好了
SaigyoujiYuyuko
2020-04-27 15:50:48 +08:00
感谢各位的帮助
SaigyoujiYuyuko
2020-04-28 21:47:35 +08:00
Re: golang 这个好像会受到 模拟器 /虚拟机的影响 我开模拟器之前还是好好的 然后开了就不能跑了
Lonenso
2020-07-22 08:58:26 +08:00
你好, 我遇到跟你同样的问题, 事件 ID1109. 用的是 TDM-GCC, 不管是否开启 CGO_ENABLED 都会出现. 但重启后正常.
https://stackoverflow.com/questions/63010207/executable-binary-got-compatibility-problem
SaigyoujiYuyuko
2020-07-25 17:05:52 +08:00
@Lonenso 你装了腾讯模拟器 (其他的安卓模拟器)啥的吗
Lonenso
2020-07-25 17:42:42 +08:00
@SaigyoujiYuyuko 我没有安装, 但是我是玩 dnf 的时候会出现. 链接是我自己的记录, https://lonenso.github.io/2020/07/22/compatible-problem/, 我不知道他是否有模拟器的组件.
SaigyoujiYuyuko
2020-07-26 12:11:29 +08:00
@Lonenso 我也是玩这些游戏 /模拟器的时候 会出现这种奇奇怪怪的问题 然后我索性就不玩游戏了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666431

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX