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