- 使用的是buildroot2019的版本默认qt5.11.3 使用gcc7.3外置工具链编译,报错gn 需要cpp14版本编译,很奇怪居然是编译宿主的gn,我的ubuntu14 gcc4.8,从gcc4.9开始支持cpp14,后来升级成gcc7 又报错需要高版本的glibc3.4.20,宿主机最高支持3.4.19,遂放弃
- buildroot默认是不开启qwebegine的,要开启需要drm,udv,xcb,opengl,包括显卡驱动,选的是g开头的那个显卡开源驱动,还需要ffmpeg,默认没集成,需要自己编译,开启了gst-ffmpeg,opencv这些,按理来说都是ffmpeg-based,但还是不行
- 好在天无绝人之路,找到了buildroot的全量包移植好ffmpeg,成功交叉编译,后续还是报错,所以放弃。突然在网上找到有人编好的qt arm64 5.9.5的版本qwebengine.so,就想着我编一个同版本的qtbase core widgets这样也可以链接,跑个简单浏览器,无奈可能是gcc版本不一样,链接起来还是有问题所以放弃
- 然后就想,能不能自己编qt arm64版本,反正都是移植到linux系统,只要有工具链,有源码什么都好说,所以下载了5.9.9版本qt,配置交叉编译环境,没想到这么顺,顺的我不敢想象,后面都编完了最让人头疼的chromium,结果最后链接的时候找不到qtdesigner的动态链接库,在网上找了很久都说在qttools下面,但我的就是死活不生成只有对应的pl.doc这些东西,在网上找了好久的方法还是不行,buildroot开启所有的qttools选项还是不行,我看了下自己win64上的qt5.14 人家就有这个qtdesigner的库,差点气死我,遂放弃
- 转念一想,可能是qt5.9.9的版本特殊呢,于是降了个版本一顿操作,居然编译成功了,差点要哭了
- 后面就是激动人心的验证时刻
- 驱动告诉我没有drm,只有linuxfb。我试了下还是不行,于是自己捣鼓了个glfs,基于opengl的,发现可以了,但是一直报错找不到qwebenginewigetprocess,最后在sysroot libexe找到了,妈耶,库的可执行文件原来是这么命名的libexe,真是学到了
- 最后就是报错没字体 放字体,最后一切都好了,真心累啊
