goland 问题CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者
Cannot run program "......" (in directory "D:\project\go\awesomeProject\src\test"): CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者
在入口文件的第一行改成如下即可
package main
goland 问题 x86_64-pc-cygwin/bin/ld: cannot find -lmingwex cannot find -lmingw32
与cygwin的gcc编译器不兼容问题
解决方案一:
下载切换到tdm-gcc环境,然后再系统环境变量path里把tdragon的位置上移到cygwin上面,让系统调用gcc时先识别tdragon的gcc,或者直接把cygwin的环境路径直接删除了,或者直接从goland里的settings->Go->GoPath里添加tdragon的路径,如下图:
解决方案二:
直接在cygwin的安装程序里安装下mingw64的环境变量,然后把cygwin的gcc删除(理论没实测)
http get Content-Encoding:deflate 问题
Golang 默认是请求gzip编码的数据,也就是会自动设置头Accept-Encoding为gzip(参看源码here),但有些服务器会忽略该标识,强制返回deflate格式的压缩数据,也就导致无法解压成功,最终从response.Body获取的就是一堆杂乱无章的数据,这个数据就是未解压的原始deflate数据,解决办法也很简单,就是在Body外面套一层flate解码,代码如下:
ioutil.ReadAll(flate.NewReader(resp.Body))
- 这也不算是Golang的问题,毕竟人家只是在遵循http协议,只是服务端没有遵循这种协议,或者是不支持gzip编码
- 测试python不会有这个问题,因为它的默认Accept-Encoding为gzip,deflate,支持解码这种数据