本文所指的 “wxGo” 是特指 “Golang wxWidgets Wrapper”,本人经历了多次失败后,终于成功编译好了wxGo,总结一下经验。
1、准备工作 首先从 github 下载源代码 master.zip,大约有 87M,然后解压到 GOPATH/src/github.com/dontpanic92/wxGo。
2、解决依赖关系 研究 wxGo/wx/setup_linux_amd64.go,得到依赖的软件包列表: cgo LDFLAGS: -pthread -lstdc++ -lGL -lGLU -lgthread-2.0 -lX11 -lXxf86vm -lSM -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo -lnotify -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpng -ljpeg -ltiff -lexpat -lz -ldl -lm -lgstreamer-1.0 -lgstvideo-1.0 把上面这些依赖的 dev 包都装全。
3、检查内存是否足够 编译 wxGo 对内存的要求相当变态,在 gnome-shell 环境下,需要的内存总量大约是 9.2 G。 下面是我编译过程中,内存占用最多的时候的内存用量: 内存:1980 1831 62 0 86 32 交换:10239 7345 2894 我的电脑比较低配,内存只有2G,SWAP本来有4G,远远不够,编译几次失败后,弄明白原因是内存不够后,在编译时临时增加了 6G 交换文件才最终编译成功。
4、编译命令 go 1.10 编译 wxGo 还要修改参数,否则会报错。 我的办法是在文件 wxGo/utils/build_binary_package.sh 的 79 行后面插入三行: export CGO_CXXFLAGS_ALLOW=".*" export CGO_LDFLAGS_ALLOW=".*" export CGO_CFLAGS_ALLOW=".*" 然后运行编译程序: ./build_binary_package.sh linux amd64 最后一步漏掉了,还要把生成的压缩文件:wxGo_linux_amd64_go1.1.zip 中的 “src/github.com/dontpanic92/wxGo/wx/binary_only_package_linux_amd64.go” 复制到 “GOPATH/src/github.com/dontpanic92/wxGo/wx” 目录下,就可以快速编译你自己的 wxWidget 项目了。
相关主题 |