环境:win10 Home; go1.11.2 windows/amd64
步骤(https://github.com/gotk3/gotk3/wiki/Installing-on-Windows):
1. Git 略
2. MinGW
这个有些‘坑’,按作者提的sourceforge上的mingwbuilds和mingw-w64都试了都不行。最后参考这里:
https://github.com/msys2/msys2/wiki/MSYS2-installation
下载(64,968,792 字节):
http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz
解压到“C:\msys64” - 下面带的mingw32、mingw64都是空目录,等待后面用pacman下载包。
2.1
按msys2页面所说,运行“C:\msys64\msys2_shell.cmd” 来初始化msys2(我没仔细看,直接点了“msys2.exe”,好像也没问题)。
初始化后重启msys2 shell。
3. gotk3页面,Install GTK and its dependencies
3.1 pacman --noconfirm --needed -Sy bash pacman pacman-mirrors
pacman是从Arch Linux借用,msys2用它来管理下载包(类似CentOS yum)。这一步更新pacman自己。
由于连国外源慢,搜索文章修改C:\msys64\etc\pacman.d下的三个文件添加国内的源。
例如mirrorlist.msys:
Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MSYS2/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
但后来发现这2个源要么404要么慢,注掉了ustc这个。后来开启/关闭科学上网后好像速度又逐渐可以了。
3.2 pacman --noconfirm -Su
3.3 pacman --noconfirm -S mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-pkg-config mingw-w64-x86_64-gtk3
用pacman来安装gcc, pkg-config, gtk3。大概等了几十分钟吧。漏了一点,有时如果中途Ctrl-C中断,下次再运行pacman会提示不能运行,此时删除pacman的一个锁文件即可(/var/lib/pacman下)。
3.4
bash -c "sed -i -e 's/-Wl,-luuid/-luuid/g' C:/msys64/mingw64/lib/pkgconfig/gdk-3.0.pc"
4. 环境变量
GOPATH略。
C:\msys64\mingw64\bin(这个大概是用来找pkg-config.exe)
C:\msys64
5. Go get gotk3
我是直接从cmd窗口运行而不是git bash(cmd里“git”命令可用)。
go get github.com/gotk3/gotk3/gtk
需要10分钟吧,可能也在编译gtk3。如果没有问题,至此win10下go语言的gtk3应用开发环境搭建完成。
6. 试验例子
go get github.com/gotk3/gotk3-examples
下载后cd gtk-examples的各个子目录,go run xx 运行,go build xx 编译。
7. 直观感觉
与github.com/andlabs/ui这个来比较:
- exe体积:ui应用<15M,gotk3应用>22M
- 启动时间:ui应用双击后比较快就能出来,而gotk3的要等待2秒
- 编译速度:目测都需要6、7秒多,ui稍微慢一点点
感觉gotk3的还是重了些,不适合做需要快速启动的GUI程序。