beaglebone black狗板,交叉编译Qt5(eglfs)
1. 下载buildroot-2023.023.7版本
make beaglebone_qt5_defconfig
然后编译,出现错误大多数是因为下载不了包,用bing搜索找到放到对应的dl目录下,最终完成编译。
备注:用系统默认配置,不要参考网上的,网上的很多都是从0开始,可能内核都版本都不对,都不带opengl es,狗板的GPU驱动,这个花费了我很长时间,最终发现默认的配置,就可以支持GPU驱动了。也是第一次玩buildroot
2. 烧写
编译最终会输出这么多文件,主要用sdcard.img
am335x-boneblack.dtb ? ? ? ? ? am335x-bone.dtb ? ? ? ? ? ? ? ?am335x-evm.dtb ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?boot.vfat ?rootfs.ext2 ?sdcard.img ?zImage
am335x-boneblack-wireless.dtb ?am335x-bonegreen.dtb ? ? ? ? ? am335x-evmsk.dtb ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?extlinux ? rootfs.ext4 ?u-boot.img
am335x-boneblue.dtb ? ? ? ? ? ?am335x-bonegreen-wireless.dtb ?arm-buildroot-linux-gnueabihf_sdk-buildroot.tar.gz ?MLO ? ? ? ?rootfs.tar ? uEnv.txt
3.? 烧写到U盘
sudo dd if=output/images/sdcard.img of=/dev/sde (这里根据dmesg替换成你的U盘)
4. 插上SD卡,然后重启狗板
5. 运行Qt efls需要先配置一下
# export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt5/eglfs_kms_cfg.json
# export QT_QPA_PLATFORM=eglfs
# export QT_QPA_EGLFS_INTEGRATION=none
设置这三个环境变量后,启动一个Qt的demo看看,正常应该是可以的。
# /usr/lib/qt/examples/opengl/hellowindow/hellowindow
6.提取sdk
在build root里面执行make sdk
备注:为什么要用sdk,不直接用交叉编译工具链编译,试了,没搞成功。
7.解压并且设置环境变量
用cmake 配合sdk来编译demo,这里挑一个多媒体的来练习
编写CMakeLists.txt,用gpt先搞个模版出来,然后修改
设置sysroot,以及添加头文件和so的路径
如果出现问题,请检查sysroot下面是否有对应的文件名find_package需要再这里找到对应的名称。
这样cmake就能找到库,好像也能找到include和lib的路径。但是我这里也还是手动添加了。
8,编译
在源码路径下面建立一个build目录,然后cd进去,执行cmake ..
然后直接make
可能遇到的问题,虚函数定义,加上下面这个,具体也没去研究
检查编译的最终结果是否是arm的可执行文件
成功,这样就可以拿到板子上去运行了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!