云网牛站
所在位置:首页 > Linux教程 > ubuntu18.04上编译wxGo的经验总结

ubuntu18.04上编译wxGo的经验总结

2018-06-14 10:29:05作者:从火星来稿源:linux站

本文所指的 “wxGo” 是特指 “Golang wxWidgets Wrapper”,本人经历了多次失败后,终于成功编译好了wxGo,总结一下经验。

ubuntu18.04上编译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 项目了。

 

相关主题

一分钟认识GitHub

精选文章
热门文章