如何为此安装 opengl 运行
How to install opengl for this to run
我正在尝试按照简单的代码使用 Fyne 包创建 GUI:
// from: https://github.com/fyne-io/fyne
package main
import (
"fyne.io/fyne/widget"
"fyne.io/fyne/app"
)
func main() {
app := app.New()
w := app.NewWindow("Hello")
w.SetContent(widget.NewVBox(
widget.NewLabel("Hello Fyne!"),
widget.NewButton("Quit", func() {
app.Quit()
}),
))
w.ShowAndRun()
}
它编译和构建可执行文件没有任何错误甚至警告,但在尝试 运行 时它给出以下错误:
I:\>rnfynetest
2019/08/25 12:37:18 Fyne error: failed to initialise OpenGL
2019/08/25 12:37:18 Cause: glBeginConditionalRender
2019/08/25 12:37:18 At: C:/Users/ABCD/go/src/fyne.io/fyne/internal/driver/gl/window.go:1007
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x2c pc=0x572afd]
goroutine 1 [running, locked to thread]:
fyne.io/fyne/internal/driver/gl.(*window).SetContent(0x0, 0x8fc5e0, 0x1386e0c0)
C:/Users/ABCD/go/src/fyne.io/fyne/internal/driver/gl/window.go:361 +0x1d
main.main()
I:/rnfynetest.go:10 +0x1ce
正如 Fyne homepage I need to install OpenGL. From go bindings for OpenGL 上给出的那样,似乎有三种安装方法:
go get -u github.com/go-gl/gl/v{3.2,3.3,4.1,4.2,4.3,4.4,4.5,4.6}-{core,compatibility}/gl
go get -u github.com/go-gl/gl/v3.1/gles2
go get -u github.com/go-gl/gl/v2.1/gl
我需要使用以下哪些命令?我正在研究 Windows7
并使用 go version go1.12.9 windows/386
感谢您的帮助。
编辑:
我尝试了以下命令:
go get -u github.com/go-gl/gl/v2.1/gl
go get -u github.com/go-gl/gl/v4.6-core/gl
go get -u github.com/go-gl/gl/v4.6-compatibility/gl
它们都安装正常,但在尝试 运行 构建可执行文件时仍然存在相同的错误。
我也试过 gles2 但它没有安装而是给出以下错误:
I:\>go get -u github.com/go-gl/gl/v3.1/gles2
# github.com/go-gl/gl/v3.1/gles2
C:\Users\ABCD\go\src\github.com\go-gl\gl\v3.1\gles2\package.go:38:11: fatal error: KHR/khrplatform.h: No such file or directory
// #include <KHR/khrplatform.h>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
OpenGL 库通常来自您的显卡驱动程序,看起来 Fyne-io 需要相当新的显卡驱动程序。 (它使用 2009 年左右发布的 OpenGL 3.2它使用 OpenGL 2.0)。所以你可以尝试:
- 使用 Mesa 项目的 OpenGL 软件实现,对于大多数桌面应用程序用例来说应该是 "good enough" - 此处有更多详细信息:https://fdossena.com/?p=mesa/index.frag
或
- 更新您的显卡驱动程序 - 如果它们适用于您的硬件,以获得 GPU 加速的 OpenGL。如果您打算制作图形密集型应用程序,一定要试试这个。
编辑:更新了 Fyne 使用的 OpenGL 上下文版本
我正在尝试按照简单的代码使用 Fyne 包创建 GUI:
// from: https://github.com/fyne-io/fyne
package main
import (
"fyne.io/fyne/widget"
"fyne.io/fyne/app"
)
func main() {
app := app.New()
w := app.NewWindow("Hello")
w.SetContent(widget.NewVBox(
widget.NewLabel("Hello Fyne!"),
widget.NewButton("Quit", func() {
app.Quit()
}),
))
w.ShowAndRun()
}
它编译和构建可执行文件没有任何错误甚至警告,但在尝试 运行 时它给出以下错误:
I:\>rnfynetest
2019/08/25 12:37:18 Fyne error: failed to initialise OpenGL
2019/08/25 12:37:18 Cause: glBeginConditionalRender
2019/08/25 12:37:18 At: C:/Users/ABCD/go/src/fyne.io/fyne/internal/driver/gl/window.go:1007
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x2c pc=0x572afd]
goroutine 1 [running, locked to thread]:
fyne.io/fyne/internal/driver/gl.(*window).SetContent(0x0, 0x8fc5e0, 0x1386e0c0)
C:/Users/ABCD/go/src/fyne.io/fyne/internal/driver/gl/window.go:361 +0x1d
main.main()
I:/rnfynetest.go:10 +0x1ce
正如 Fyne homepage I need to install OpenGL. From go bindings for OpenGL 上给出的那样,似乎有三种安装方法:
go get -u github.com/go-gl/gl/v{3.2,3.3,4.1,4.2,4.3,4.4,4.5,4.6}-{core,compatibility}/gl
go get -u github.com/go-gl/gl/v3.1/gles2
go get -u github.com/go-gl/gl/v2.1/gl
我需要使用以下哪些命令?我正在研究 Windows7
并使用 go version go1.12.9 windows/386
感谢您的帮助。
编辑:
我尝试了以下命令:
go get -u github.com/go-gl/gl/v2.1/gl
go get -u github.com/go-gl/gl/v4.6-core/gl
go get -u github.com/go-gl/gl/v4.6-compatibility/gl
它们都安装正常,但在尝试 运行 构建可执行文件时仍然存在相同的错误。
我也试过 gles2 但它没有安装而是给出以下错误:
I:\>go get -u github.com/go-gl/gl/v3.1/gles2
# github.com/go-gl/gl/v3.1/gles2
C:\Users\ABCD\go\src\github.com\go-gl\gl\v3.1\gles2\package.go:38:11: fatal error: KHR/khrplatform.h: No such file or directory
// #include <KHR/khrplatform.h>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
OpenGL 库通常来自您的显卡驱动程序,看起来 Fyne-io 需要相当新的显卡驱动程序。 (它使用 2009 年左右发布的 OpenGL 3.2它使用 OpenGL 2.0)。所以你可以尝试:
- 使用 Mesa 项目的 OpenGL 软件实现,对于大多数桌面应用程序用例来说应该是 "good enough" - 此处有更多详细信息:https://fdossena.com/?p=mesa/index.frag
或
- 更新您的显卡驱动程序 - 如果它们适用于您的硬件,以获得 GPU 加速的 OpenGL。如果您打算制作图形密集型应用程序,一定要试试这个。
编辑:更新了 Fyne 使用的 OpenGL 上下文版本