1

我试图运行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

我正在运行 go 版本 go1.16.7 linux/amd64

4

2 回答 2

1

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

于 2021-08-13T12:21:04.933 回答
0

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

我有 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()
    }

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

../../../gopkg/pkg/mod/fyne.io/fyne/v2@v2.0.4/storage/repository/parse.go:8:2:缺少提供包github的模块的go.sum条目。 com/fredbi/uri(由 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

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

于 2021-08-31T12:35:33.777 回答