微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

构建 fyne 应用程序时 glfw pkg-config 错误

如何解决构建 fyne 应用程序时 glfw pkg-config 错误

Golang 代码

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.

对此问题的任何解决方案或建议将不胜感激。 P.S 我在 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,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,0xc000146000,0xc0000c00f0)
        /home/rohan/go/src/fyne.io/fyne/internal/driver/glfw/window.go:1166 +0x44
fyne.io/fyne/app.(*fyneApp).NewWindow(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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。