前言
只所以说是新酒老瓶而不是新瓶老酒是有用意的。
因为QT是器,老瓶,出来时配合着C++的。而如今go来势凶凶,自然英雄所见略同。
两大开源神器,跨平台开发,终将双剑合璧了,让你如虎添翼。
过程记录如下
安装QT
→参考指导:
本人使用/usr/local/qt为QTDIR。5.12.10
安装go
→参考指导:
https://blog.csdn.net/icanx/article/details/91438450
→配置go env国内源
liteide源码编译安装
→参考指导:
https://www.cnblogs.com/7explore-share/p/5838281.html?utm_source=debugrun&utm_medium=referral
出现了模板路径报错,于是使用tarena环境,但是root账户,先安装两个包,再改脚本后,编译方成功。
实在是经典解说:
→针对windows平台
在此时需要安装mingw64做为前提,不然liteide就是水土不服的。必要时关闭360吧!
mingw64实是难搞,换了几个工具,如mingw installation manager,最后用mingw-w64-install.exe
启动后选择版本,posix和seh,这就生成了安装目录。
在安装过程中,把此前下载的源码包压缩包“mingw-w64-v8.0.0.zip”重新命名为“x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z”,放置在默认的目录中“x86_64-8.1.0-posix-seh-rt_v6-rev0”
最后,把安装的路径
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
放到系统环境变量中。万事大吉。gcc,g++一应具全,随处可用。
GO111MODULE在windows上是没有auto可设置的,即便你使用liteide设置了,但go env中实际还是当它为on。
所以,系统底层仍设置为on,GOPATH目录内的源码编译成功,无论是否有go.mod。但要是GOPATH目录外的拥有go.mod文件(这是通过go mod init src生成的)可以编译成功。
当设置为off时,同时也得让GOPROXY为空,这时GOPATH和有go.mod的外部目录都可在命令行编译成功。所以,建议你还是使用命令行吧,因为,同一代码在命令行和liteide中结果不同,并且,保持on状态,保持代码不在GOPATH中。相信,go的发展也是会弃掉它。
→针对linux平台
GO111MODULE可以被liteide设置成auto.
这样设置的好处是模糊使用GOPATH(任何设置都OK)。而无论要编译的源码在任何目录都可以,且不用设置go.mod。
前台qt后台go起步
→参考指导:
环境:https://github.com/therecipe/qt/wiki
→therecipe/qt包的安装
先go get -u -v 不行就先下载,然后改名适配到代码中包引用的相应GOPATH中,然后再安装命令工具即cmd中的…。
重要是认清go get的本质就是一种git clone的包装。
go install /home/tarena/code4DN/learn_gopath/src/github.com/therecipe/qt/cmd/...
不出意外是报错的,但看下面的解决问题内容。
→解决go端的环境的问题
https://blog.csdn.net/wzw_mzm/article/details/77618922
出现“找不到 golang.org/x/mod/module”问题,后来手工下载了golang.org/x/下面系列仓库,就是 git clone.
git clone https://github.com/golang/mod.git
git clone https://github.com/golang/xerrors.git
这是两个新加入的,一般没有它,已经可以运行demo.最终的完整支持包如下图
原始网上下载运行demo的命令如下,
go get -ldflags="-w" github.com/therecipe/examples/basic/widgets && $(go env GOPATH)/bin/widgets
它会直接运行一个弹出窗口,相应后台的操作是拷贝了代码并编译放在GOPATH/bin中,再运行。
本人已经下载过therecipe/qt包了,就是对应GOPATH下的
github.com/therecipe/examples/basic/widgets/main.go
→解决QT端的环境问题
以上集齐了龙珠。这里是锦上添花,因为,要充分使用QT的伎俩,就需要一套工具。
这时再次执行命令
go install /home/tarena/code4DN/learn_gopath/src/github.com/therecipe/qt/cmd/...
命令成功使用之后
goqtuic的安装
go get -u -v github.com/stephenlyu/goqtuic
事实上没有这些工具也可以运行demo或QT库的代码。只要thericipe/qt包具备了就行。
总结跨平台
不管是windows还是linux下,都要在GOPATH/src下具备github.com和golang.org。前者里面有therecipe后者里面有x。同样的代码,都用Liteide编译,本地化成各自系统的风格。
静态库的go调用:(用GO来唤醒C的各种沉睡资源吧)
https://www.jianshu.com/p/b3fb41d7c33f
附录:
- qtsetup会把qt的相应源码下载放置在go源码旁边,如果你有了mingw和gcc,它都会编译成静态库(.a的文件)给你。go帮你丰富环境真是全方位的。如果你是单独完全安装的qt环境,此处可以省略。很久以前,静态编译成window平台的QT库让你累疯,但现在mingw和go,让你永远不碰那个步骤了。
- 翻墙参考:https://www.cnblogs.com/hupeng1234/p/9727170.html
- qt如果要调试或用其它QT版本,有几个需要的环境变量比如QT_DIR。