安装 fyne 包,失败并显示“找不到 -lXxf86vm”

installing fyne package, it fails with `cannot find -lXxf86vm`

我正在尝试 运行 https://github.com/fyne-io/fyne

中给出的演示代码

import (
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/container"
    "fyne.io/fyne/v2/widget"
)

func main() {
    a := app.New()
    w := a.NewWindow("Hello")

    hello := widget.NewLabel("Hello Fyne!")
    w.SetContent(container.NewVBox(
        hello,
        widget.NewButton("Hi!", func() {
            hello.SetText("Welcome :)")
        }),
    ))

    w.ShowAndRun()
}

但是它显示这个错误

go: downloading github.com/stretchr/testify v1.6.1
go: downloading gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
go: downloading golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
 github.com/go-gl/glfw/v3.3/glfw
/usr/bin/ld: cannot find -lXxf86vm
collect2: error: ld returned 1 exit status

我是运行ning go版本go1.16.7linux/amd64

如果您在 Linux 上编译,您可能需要一些额外的库 headers - 查看 https://developer.fyne.io/started/ 中的说明。 根据您的发行版,库名称会有所不同,但它可能被命名为 libXxf86vm-devel.

我在这里为 Ubuntu 20:04 添加一个解决方案,使用 golang go1.16.5

我有 gcc,我发现我需要以下系统依赖项 sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev xorg-dev

我的构建文件

build:
    go mod download
    CGO_ENABLED=1  go build -ldflags "-s -w" -o $(BINARY) 

简单main.go

    import (
      "fyne.io/fyne/v2/app"
    )

    func main() {
      a := app.New()
      w := a.NewWindow("Server Mon")
      w.ShowAndRun()
    }

当我构建时得到一些缺少的依赖项堆栈跟踪,比如

../../../gopkg/pkg/mod/fyne.io/fyne/v2@v2.0.4/storage/repository/parse.go:8:2: missing go.sum entry for module providing package github.com/fredbi/uri (imported by fyne.io/fyne/v2/

这些都解决了

go get fyne.io/fyne/v2/app@v2.0.4
go get fyne.io/fyne/v2/storage/repository@v2.0.4
go get fyne.io/fyne/v2/internal/painter/gl@v2.0.4
go get fyne.io/fyne/v2/internal/driver/glfw@v2.0.4

通过上述步骤一切都构建并运行