Windows下VS Code引入fyne时构建约束排除Go文件问题求助
问题背景
Windows系统 + VS Code编辑器环境下,导入Fyne库后Go编译器提示构建约束排除了github.com/go-gl/gl包下的所有Go文件,已尝试清理缓存、安装GCC但问题仍存在。
相关代码与错误信息
RecursivePlant.go
package main // create Gui's import ( // "fmt" "image" "image/color" "image/draw" "image/png" "math" "os" "time" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/widget" )
对应的错误信息:
error while importing fyne.io/fyne/v2/app: build constraints exclude all Go files in C:\Users\geniu\go\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v3.2-core\gl
RecursiveNoise.go
package main import ( "image" "image/color" "image/draw" "image/png" "math/rand" "os" "time" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/widget" )
对应的错误信息:
error while importing fyne.io/fyne/v2/app: build constraints exclude all Go files in C:\Users\geniu\go\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v3.2-core\gl
go.mod文件
module example.com/hello go 1.20 require fyne.io/fyne/v2 v2.3.5
对应的错误信息:
error while importing fyne.io/fyne/v2/internal/painter/gl: build constraints exclude all Go files in C:\Users\geniu\go\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v3.2-core\gl
解决方案
以下是针对该问题的分步解决方法:
检查Go环境变量配置
确保GOOS和GOARCH与Windows系统匹配:- 64位Windows执行:
set GOOS=windows、set GOARCH=amd64 - 32位Windows执行:
set GOOS=windows、set GOARCH=386
配置后重启VS Code,重新运行项目。
- 64位Windows执行:
更新并修复依赖
执行以下命令更新Fyne依赖并整理模块:go get -u fyne.io/fyne/v2 go mod tidy验证GCC配置有效性
打开终端执行gcc --version,确认GCC已正确安装并添加到系统PATH中。如果未找到命令,需重新安装MinGW-w64并将其bin目录添加到PATH。切换至软件渲染后端
临时禁用GL后端,使用软件渲染绕过问题:
在终端中执行:set FYNE_RENDERER=software && go run RecursivePlant.go如果需要永久设置,可在系统环境变量中添加
FYNE_RENDERER=software。清理模块缓存并重新下载依赖
执行以下命令清理Go模块缓存后重新下载所有依赖:go clean -modcache go mod download指定兼容的go-gl版本
在go.mod中添加replace指令,强制使用兼容的go-gl版本:replace github.com/go-gl/gl => github.com/go-gl/gl@v0.0.0-20220412174435-4954275662e5添加后执行
go mod tidy更新依赖。
内容的提问来源于stack exchange,提问作者T. J. Foster

