go语言的gtk3的库是github.com/gotk3/gotk3/gtk
,编写如下测试代码如下:
package main
import (
"github.com/gotk3/gotk3/gtk"
"log"
)
func main() {
gtk.Init(nil)
window, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Unable to create window:", err)
}
window.SetTitle("Hello World")
window.Connect("destroy", func() {
gtk.MainQuit()
})
label, err := gtk.LabelNew("Hello, GTK+ with Go!")
if err != nil {
log.Fatal("Unable to create label:", err)
}
window.Add(label)
window.ShowAll()
gtk.Main()
}
在windows下用go mod tidy
和go mod vendor
把依赖包下载下来,并复制到本地vendor目录。压缩成zip上传到centos7.9 linux环境。
确认centos7.9上已安装相应的gtk3的devel包:
gtk3-devel-3.22.30-5.el7.x86_64
glib2-devel-2.56.1-7.el7.x86_64
cairo-devel-1.15.12-4.el7.x86_64
pango-devel-1.42.4-4.el7_7.x86_64
gdk-pixbuf2-devel-2.36.12-3.el7.x86_64
gcc-4.8.5-44.el7.x86_64
解压windows上打包过来的go程序(带有本地依赖包),进行编译。注意需要加上版本兼容的build tags,限制为本地的库的版本。
go build -tags "pango_1_42 gtk_3_22" guitest.go
运行./guitest
,顺利打开gui界面。