Windows下使用Golang Fyne框架执行go build时MinGW相关编译报错求助
Windows下使用Golang Fyne框架执行go build时MinGW相关编译报错求助
我这是第一次在Windows上用Golang的Fyne框架,严格跟着官方入门步骤操作,但执行go build .编译main.go文件的时候,遇到了如下报错:
runtime/cgo gcc_libinit_windows.c:6:2: error: #error "don't use the cygwin compiler to build native Windows programs; use MinGW instead"
问题原因&解决办法
别慌,这个问题其实挺常见的,核心原因是你的Go环境默认调用了Cygwin的gcc编译器,而Fyne框架编译需要的是MinGW版本的编译器。给你几个亲测有效的解决思路:
调整环境变量优先级
打开系统环境变量的PATH列表,看看Cygwin的bin目录是不是排在MinGW的前面。如果是的话,把MinGW的bin路径(比如C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\bin)移到Cygwin路径的上方,保存后重启终端,再尝试编译。重新安装适配的MinGW
确保你安装的是64位的MinGW-w64(不是老旧的MinGW),推荐选择posix线程模型的版本,这个版本对Go和Fyne的兼容性更好。安装完成后一定要把它的bin目录添加到系统PATH中。编译时临时指定编译器
如果不想改动全局环境变量,可以在编译命令里直接指定MinGW的gcc路径,比如:CC=C:\mingw-w64\bin\gcc.exe go build .修正Go的CC环境变量
先用go env命令查看当前Go的环境变量,要是发现CC的值指向的是Cygwin的gcc,就用下面的命令把它改成MinGW的gcc路径:go env -w CC=C:\mingw-w64\bin\gcc.exe
内容来源于stack exchange




