【go语言】centos7.9 go+gtk3离线gui开发
专栏:web开发笔记 April 15, 2025, 6:56 p.m. 58 阅读
在centos7.9上离线编译和运行go+gtk3的gui程序

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 tidygo 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界面。

f815f50411fe786c7d7da3606a07f220.png

 

感谢阅读,更多文章点击这里:【专栏:web开发笔记】
最新20篇 开设专栏