在phpstorm里配置好编译Windows 32位执行程序的参数,运行go build后得到的执行程序,在32位Windows服务器上执行,却总弹出“不是有效的win32应用程序”的对话框提示。
我的配置如下图所示:
本文为翟码农个人博客蓝翟红尘下go语言开发分类下有关编译打包Windows32位执行程序的原创文章,转载请注明出处:用go编译后32位exe文件,执行却总报不是有效的win32应用程序错误 - 翟码农技术博客 (zhai14.com)
http://www.zhai14.com/blog/error-of-not-a-valid-win32-application-pop-up-after-executing-exe-compiled-with-go.html
最后在git bash里执行命令编译打包的,得到的执行程序就ok了。
至于为何在phpstorm的Terminal命令窗口里执行就会失败,这个我就不清楚了。
编译Win32执行程序(带弹窗)
GOOS=windows GOARCH=386 go build
编译Win64执行程序(带弹窗)
GOOS=windows GOARCH=amd64 go build
编译Win32执行程序(不带弹窗)
GOOS=windows GOARCH=386 go build -ldflags "-H windowsgui"
编译Win64执行程序(不带弹窗)
GOOS=windows GOARCH=amd64 go build -ldflags "-H windowsgui"
go env //查看
set GOARCH=386
go env //查看修改是否生效
go build
但不知为何,我尽管尝试了千百遍,参数仍风雨不动安如山。