go - 构建 fyne 应用程序时出现 glfw pkg-config 错误
问题描述
戈朗代码:
package main
import (
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
)
func main() {
application := app.New()
window = application.NewWindow("Hello rohan")
window.SetContent(widget.NewLabel("Hello again"))
window.ShowAndRun()
}
执行此代码时,出现以下错误。
# pkg-config --cflags -- gl gl
Package gl was not found in the pkg-config search path.
Perhaps you should add the directory containing `gl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gl' found
Package gl was not found in the pkg-config search path.
Perhaps you should add the directory containing `gl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gl' found
pkg-config: exit status 1
# fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw
In file included from ./glfw/src/internal.h:188,
from ./glfw/src/context.c:30,
from ../../../go/src/fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw/c_glfw.go:4:
./glfw/src/x11_platform.h:36:10: fatal error: X11/Xcursor/Xcursor.h: No such file or directory
36 | #include <X11/Xcursor/Xcursor.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
对此问题的任何解决方案或建议将不胜感激。PS 我在 Windows 上使用 Go 版本 1.13.8 和 ubuntu 20.04 WSL。
运行sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev
命令后,我现在收到此错误:
2020/12/21 12:12:19 PlatformError: X11: The DISPLAY environment variable is missing
panic: NotInitialized: The GLFW library is not initialized
goroutine 1 [running, locked to thread]:
fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw.acceptError(0x0, 0x0, 0x0, 0x4332bd, 0x991100)
/home/rohan/go/src/fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw/error.go:174 +0x216
fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw.panicError(...)
/home/rohan/go/src/fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw/error.go:185
fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw.CreateStandardCursor(0x36001, 0x1)
/home/rohan/go/src/fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.3/glfw/input.go:530 +0x4e
fyne.io/fyne/internal/driver/glfw.initCursors()
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/window.go:35 +0x3c
fyne.io/fyne/internal/driver/glfw.(*gLDriver).initGLFW.func1()
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/loop.go:76 +0x6b
sync.(*Once).doSlow(0x10de160, 0xc000068dc8)
/usr/lib/go-1.13/src/sync/once.go:66 +0xe3
sync.(*Once).Do(...)
/usr/lib/go-1.13/src/sync/once.go:57
fyne.io/fyne/internal/driver/glfw.(*gLDriver).initGLFW(0xc0000c00f0)
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/loop.go:69 +0x65
fyne.io/fyne/internal/driver/glfw.(*gLDriver).createWindow.func1()
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/window.go:1175 +0x56
fyne.io/fyne/internal/driver/glfw.runOnMain(0xc0000a5440)
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/loop.go:51 +0xab
fyne.io/fyne/internal/driver/glfw.(*gLDriver).createWindow(0xc0000c00f0, 0x9b7b98, 0xb, 0xc000146001, 0xc000068f08, 0x85c288)
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/window.go:1174 +0xd4
fyne.io/fyne/internal/driver/glfw.(*gLDriver).CreateWindow(0xc0000c00f0, 0x9b7b98, 0xb, 0xc000146000, 0xc0000c00f0)
/home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/window.go:1166 +0x44
fyne.io/fyne/app.(*fyneApp).NewWindow(0xc000146000, 0x9b7b98, 0xb, 0xc000146000, 0x0)
/home/rohan/go/src/fyne.io/fyne/app/app.go:52 +0x47
main.main()
/home/rohan/Code/Go/practice/main.go:10 +0x56
exit status 2
希望有人可以帮助我,或者就如何解决它给我任何建议。
解决方案
一些 Linux 系统缺少已安装图形库的编译头文件。值得庆幸的是,这仅在开发时需要 - 应用程序将运行而不会遇到此问题。
对于 Ubuntu 或 Debian 尝试sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev
. 安装因平台而异,详情请见https://developer.fyne.io/started/
推荐阅读
- python-3.x - 在类别级别绘制时间序列
- xamarin.forms - 尽管我正确编写了代码,为什么我的应用程序中没有出现广告?
- javascript - 更改图表类型 onclick ChartJS
- python-3.x - 如何使用 discord.py 进行多进程?
- google-apps-script - 即使日期值相同,但无法获取记录器
- r - 如何省略冗余的海量信息?
- macos - 如何使用 macos grep 将文件视为巨大的字符串?
- javascript - 如何在jquery数据表上的下拉选择框中添加删除线并在此基础上过滤掉
- javascript - 解构对象属性和整个对象本身
- ios - 将 AWS EC2 macOS 用于 gitlab CI/CD