- 主机PC:Ubuntu 20.04
- 靶板:BeagleBone Black(bone-debian-10.3-console-armhf-2020-04-06-1gb(
- 我正在尝试构建qt-everywhere-src-5.12.11,用于交叉编译BBB
- 我有rsync-avzdebian@192.168.7.2:用于带有libs等的sysroot
- 我的configure命令是sudo qt-everywhere-src-5.12.1/configure-release-eglfs-opengl es2-device linux-beagebard-g++-device option CROSS_COMPILE=~/BBB/tools/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-GNUabihf-sysroot~/BB/sysroot-opensource-confirm license-make libs-prefix/usr/local/qt5bbb-extprefix ~/BB/qt5bbb-hostprefix ~/HBB/qt5-v
6和我的配置摘要QPA后端:EGLFS…无
我该怎么做才能超过EGLFS作为…是的
我有一本大约一年前为自己编写的手册。这描述了如何为基于ARM的PC交叉编译Qt。我是Orange Pi。我能够在需要EGLFS的应用程序上运行QtQuck应用程序。
-
使用Qt维护工具下载所需版本的Qt源代码(从网站下载的源代码存在一些问题(。
-
使用以下内容更改文件
/qtbase/mkspecs/devices/linux-arm-generic-g++/qmake.conf
:include(../common/linux_device_pre.conf) QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL} QMAKE_LIBS_OPENGL_ES2 = $${VC_LINK_LINE} -lGLESv2 # The official opt vc EGL references GLESv2 symbols: need to link it QMAKE_LIBS_EGL = $${VC_LINK_LINE} -lEGL -lGLESv2 QMAKE_LIBDIR_BCM_HOST = =$$VC_LIBRARY_PATH QMAKE_INCDIR_BCM_HOST = $$VC_INCLUDE_PATH QMAKE_LIBS_BCM_HOST = -lbcm_host QMAKE_CFLAGS = -march=armv7 QMAKE_CXXFLAGS = $$QMAKE_CFLAGS DISTRO_OPTS += hard-float EGLFS_DEVICE_INTEGRATION= eglfs_brcm include(../common/linux_arm_device_post.conf) load(qt_config)
也许在这一步中,您可以创建自己的文件夹,如linux-bbb-g++,并将文件放在linux-arm-generic-g++中,然后在configure中的-device键后指定此文件夹。
-
从您的板连接sysroot(我使用的是sshfs而不是rsync(
sshfs -o idmap=user,follow_symlinks username@192.168.0.211:/ boardname
-
配置Qt
mkdir build cd build ../configure -release -opensource -confirm-license -opengl es2 -eglfs -device arm-generic-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /tmp/orange -no-linuxfb -no-pch -reduce-exports -force-pkg-config -nomake examples -no-compile-examples -skip qtwayland -skip qtwebengine -skip qt3d -skip qtlocation -qt-pcre -ssl -evdev -glib -prefix /home/user/Qt/5.12.8/arm_linux_gnueabihf -no-use-gold-linker
-
构建Qt
make -j4