我试图运行在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
我在这里添加了一个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()
}
当我构建得到一些丢失的go依赖堆栈跟踪,如
../../../gopkg/pkg/mod/fyne.io/fyne/v2@v2.0.4/storage/repository/parse.go:8:2:丢失go。提供包github.com/fredbi/uri(由fne导入)的模块的Sum条目。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
在上面的步骤中,一切都构建并运行
如果您在Linux上编译,您可能需要一些额外的库头文件-查看https://developer.fyne.io/started/上的说明。根据您的发行版,库的名称会有所不同,但它可能被命名为libXxf86vm-devel
。