[salvator-XS] Qt Cross Compile
Yocto 에서 빌드한 SDK 파악
poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-aarch64-toolchain-5.90.0+snapshot.sh
설치된 SDK의 환경변수 파악
/opt/rcar_m3/environment-setup-aarch64-agl-linux
$ echo $CC
aarch64-agl-linux-gcc -march=armv8-a --sysroot=/opt/rcar_m3/sysroots/aarch64-agl-linux
export CC="aarch64-agl-linux-gcc -march=armv8-a --sysroot=$SDKTARGETSYSROOT" export CXX="aarch64-agl-linux-g++ -march=armv8-a --sysroot=$SDKTARGETSYSROOT" export CPP="aarch64-agl-linux-gcc -E -march=armv8-a --sysroot=$SDKTARGETSYSROOT" export AS="aarch64-agl-linux-as " export LD="aarch64-agl-linux-ld --sysroot=$SDKTARGETSYSROOT" sysroots/x86_64-aglsdk-linux/environment-setup.d qt5.sh export PATH=$OECORE_NATIVE_SYSROOT/usr/bin/qt5:$PATH export OE_QMAKE_CFLAGS="$CFLAGS" export OE_QMAKE_CXXFLAGS="$CXXFLAGS" export OE_QMAKE_LDFLAGS="$LDFLAGS" export OE_QMAKE_CC=$CC export OE_QMAKE_CXX=$CXX export OE_QMAKE_LINK=$CXX export OE_QMAKE_AR=$AR export QT_CONF_PATH=$OECORE_NATIVE_SYSROOT/usr/bin/qt5/qt.conf export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS` export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS` export OE_QMAKE_MOC=$OECORE_NATIVE_SYSROOT/usr/bin/qt5/moc export OE_QMAKE_UIC=$OECORE_NATIVE_SYSROOT/usr/bin/qt5/uic export OE_QMAKE_RCC=$OECORE_NATIVE_SYSROOT/usr/bin/qt5/rcc export OE_QMAKE_QDBUSCPP2XML=$OECORE_NATIVE_SYSROOT/usr/bin/qt5/qdbuscpp2xml export OE_QMAKE_QDBUSXML2CPP=$OECORE_NATIVE_SYSROOT/usr/bin/qt5/qdbusxml2cpp export OE_QMAKE_QT_CONFIG=`qmake -query QT_INSTALL_LIBS`/qt5/mkspecs/qconfig.pri export OE_QMAKE_PATH_HOST_BINS=$OECORE_NATIVE_SYSROOT/usr/bin/qt5 export QMAKESPEC=`qmake -query QT_INSTALL_LIBS`/qt5/mkspecs/linux-oe-g++ qt 관련 옵션 포함되어 있다. |
Yocto 에서 빌드된 Qt5.9.4 빌드옵션파악
uilding on: linux-oe-g++ (arm64, CPU features: neon) Building for: linux-oe-g++ (arm64, CPU features: neon) Configuration: cross_compile compile_examples enable_new_dtags largefile neon silent shared release c++11 c++14 c++1z concurrent dbus no-qml-debug reduce_exports stl Build options: Mode ................................... release Optimize release build for size ........ no Building shared libraries .............. yes Using C++ standard ..................... C++1z Using ccache ........................... no Using gold linker ...................... no Using new DTAGS ........................ yes Using precompiled headers .............. no Using LTCG ............................. no Target compiler supports: NEON ................................. yes Build parts ............................ libs tests tools Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... yes Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... yes QML debugging .......................... no udev ................................... yes Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no iconv .................................. no ICU .................................... yes Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getaddrinfo() .......................... yes getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no SCTP ................................... no Use system proxies ..................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ yes HarfBuzz ............................... no Using system HarfBuzz ................ no Fontconfig ............................. yes Image formats: GIF .................................. no ICO .................................. no JPEG ................................. yes Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ yes EGL .................................... yes OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ yes OpenGL ES 3.0 ........................ yes OpenGL ES 3.1 ........................ yes Session Management ..................... no Features used by QPA backends: evdev .................................. yes libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. no xkbcommon-evdev ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. no LinuxFB ................................ no VNC .................................... yes Mir client ............................. no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... no Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... yes TDS (Sybase) ........................... no Note: -hostbindir is not a subdirectory of -hostprefix. Note: -hostlibdir is not a subdirectory of -hostprefix. Note: -hostdatadir is not a subdirectory of -hostprefix. WARNING: Feature xinput2 is insignificant in this configuration, ignoring related command line option(s). WARNING: Feature xkb is insignificant in this configuration, ignoring related command line option(s). WARNING: Feature xkbcommon-system is insignificant in this configuration, ignoring related command line option(s). WARNING: The [-no]-qpa-platform-guard argument is deprecated and has no effect. WARNING: No QPA platform plugin enabled! This will produce a Qt that cannot run GUI applications. The dependencies needed for xcb to build are listed in |
Qt 관련된 SDK 파일 삭제
rm -rf qt5/
rm -rf libQt5*
Qt 소스에서(qtbase) 타겟에 맞는 mkspec 파일 재생성 후 qt build 를 수행한다.
./configure -prefix /opt/qt5.11.1 -xplatform linux-rcar-g++ -sysroot /opt/rcar/sysroots/aarch64-agl-linux
Creating qmake...
export PATH=/opt/rcar_m3/sysroots/x86_64-aglsdk-linux/usr/bin/aarch64-agl-linux:$PATH
./configure -prefix /opt/qt5.11.1 -xplatform linux-rcar-g++ -sysroot /opt/rcar_m3/sysroots/aarch64-agl-linux
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: linux-rcar-g++ (arm64, CPU features: neon) Configuration: cross_compile compile_examples largefile neon precompile_header shared rpath release c++11 c++14 c++1z concurrent dbus reduce_exports stl Build options: Mode ................................... release Optimize release build for size ........ no Building shared libraries .............. yes Using C++ standard ..................... C++1z Using ccache ........................... no Using gold linker ...................... no Using new DTAGS ........................ no Using precompiled headers .............. yes Using LTCG ............................. no Target compiler supports: NEON ................................. yes Build parts ............................ libs examples Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... yes Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... yes udev ................................... yes Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... yes iconv .................................. no ICU .................................... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no Linux AF_NETLINK ....................... yes OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ no SCTP ................................... no Use system proxies ..................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ yes HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. yes Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ yes EGL .................................... yes OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ yes OpenGL ES 3.0 ........................ yes OpenGL ES 3.1 ........................ yes OpenGL ES 3.2 ........................ yes Vulkan ................................. no Session Management ..................... yes Features used by QPA backends: evdev .................................. yes libinput ............................... yes INTEGRITY HID .......................... no mtdev .................................. yes tslib .................................. no xkbcommon-evdev ........................ yes QPA backends: DirectFB ............................... no EGLFS .................................. yes EGLFS details: EGLFS OpenWFD ........................ no EGLFS i.Mx6 .......................... no EGLFS i.Mx6 Wayland .................. no EGLFS RCAR ........................... no EGLFS EGLDevice ...................... yes EGLFS GBM ............................ yes EGLFS VSP2 ........................... no EGLFS Mali ........................... no EGLFS Raspberry Pi ................... no EGL on X11 ........................... no LinuxFB ................................ yes VNC .................................... yes Mir client ............................. no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... yes Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt Testlib: Tester for item models ................. yes Note: Also available for Linux: linux-clang linux-icc Note: PKG_CONFIG_LIBDIR automatically set to /opt/rcar_m3/sysroots/aarch64-agl-linux/usr/lib/pkgconfig:/opt/rcar_m3/sysroots/aarch64-agl-linux/usr/share/pkgconfig:/opt/rcar_m3/sysroots/aarch64-agl-linux/usr/lib/aarch64-agl-linux/pkgconfig Note: PKG_CONFIG_SYSROOT_DIR automatically set to /opt/rcar_m3/sysroots/aarch64-agl-linux Note: Dropped compiler flags '-pthread' when detecting library 'glib'. Qt is now configured for building. Just run 'make'. Once everything is built, you must run 'make install'. Qt will be installed into '/opt/rcar_m3/sysroots/aarch64-agl-linux/opt/qt5.11.1'. Prior to reconfiguration, make sure you remove any leftovers from the previous build. |