Cross Compile Raspberry Pi on Windows



  • Please someone write a good tutorial to cross compile for raspberry pi3. I could not build qt.



  • LAST OUTPUT :

    Performing shadow build...
    Preparing build tree...
    Running configuration tests (phase 1)...
    Precompiled-headers support enabled.
    C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf-g++ -c -fvisibility=hidden fvisibility.c
    Symbol visibility control enabled.
    c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld.gold.exe: -plugin: unknown option
    c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld.gold.exe: use the --help option for usage information
    collect2.exe: error: ld returned 1 exit status
    C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf-g++ --sysroot=C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c
    bsymbolic_functions.c:2:2: error: #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."
    #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."
    ^
    Symbolic function binding disabled.
    DEFAULT_INCDIRS="c:\sysgcc\raspberry\bin../arm-linux-gnueabihf/include/c++/4.9
    c:\sysgcc\raspberry\bin../arm-linux-gnueabihf/include/c++/4.9/backward
    c:\sysgcc\raspberry\bin../lib/gcc/arm-linux-gnueabihf/4.9/include
    c:\sysgcc\raspberry\bin../lib/gcc/arm-linux-gnueabihf/4.9/include-fixed
    c:\sysgcc\raspberry\bin../arm-linux-gnueabihf/include
    C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/usr/include/arm-linux-gnueabihf
    C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/usr/include
    "
    DEFAULT_LIBDIRS="c
    /sysgcc/raspberry/lib/gcc/arm-linux-gnueabihf/4.9/;c
    /sysgcc/raspberry/lib/gcc/arm-linux-gnueabihf/;c
    /sysgcc/raspberry/lib/gcc/;c
    /sysgcc/raspberry/arm-linux-gnueabihf/lib/;C
    /SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf/;C
    /SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/lib/;C
    /SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf/;C
    /SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/usr/lib
    "
    Done running configuration tests.
    Creating qmake...
    C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf-g++ -c -o qlibraryinfo.o -pipe -fno-keep-inline-dllexport -U__STRICT_ANSI__ -ffunction-sections -O2 -DUNICODE -g -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake/library -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake/generators -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake/generators/unix -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake/generators/win32 -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake/generators/mac -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qmake/generators/integrity -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/include -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore/5.6.2 -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore/5.6.2/QtCore -I../src/corelib/global -DHAVE_QCONFIG_CPP -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/mkspecs/win32-g++ -IC:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/tools/shared -DQT_VERSION_STR="5.6.2" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=6 -DQT_VERSION_PATCH=2 -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 -DQT_JSON_READONLY -DQT_NO_STANDARDPATHS C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/global/qlibraryinfo.cpp
    arm-linux-gnueabihf-g++: error: command line option '-fno-keep-inline-dllexport' is not supported by this configuration
    make: *** [qlibraryinfo.o] Error 1

    arm-linux-gnueabihf-g++ --version
    arm-linux-gnueabihf-g++.exe (GCC) 4.9.2
    Copyright (C) 2014 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

    g++.exe (rubenvb-4.7.1-2-release) 4.7.1
    Copyright (C) 2012 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



  • I change MinGW with 4.9.2 than I could generate qmake.exe Then, I change a line ( if true; then ###[ '!' -f "$outpath/bin/qmake" ]; to if [ '!' -f "$outpath/bin/qmake" ]; then ###[ '!' -f "$outpath/bin/qmake" ];) configure file in qtbase. I run configure again.

    *$ ../qt-everywhere-opensource-src-5.6.2/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rpi3-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5 -device-option CROSS_COMPILE=C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf- -qt-xcb -verbose *

    Build options:
    Configuration .......... accessibility accessibility-atspi-bridge alsa audio-backend c++11 c++14 clock-gettime clock-monotonic compile_examples concurrent cross_compile cups dbus egl eglfs eglfs_brcm enable_new_dtags evdev eventfd freetype full-config getaddrinfo getifaddrs harfbuzz iconv icu inotify ipv6ifname large-config largefile libudev linuxfb medium-config minimal-config mremap neon opengl opengles2 openssl pcre png posix_fallocate precompile_header qpa qpa reduce_exports release rpath shared small-config system-jpeg system-zlib threadsafe-cloexec xcb xcb-glx xcb-plugin xcb-qt xcb-xlib xinput2 xkbcommon-qt xlib xrender
    Build parts ............ libs
    Mode ................... release
    Using sanitizer(s)...... none
    Using C++ standard ..... c++14
    Using gold linker....... no
    Using new DTAGS ........ yes
    Using PCH .............. yes
    Using LTCG ............. no
    Target compiler supports:
    Neon ................. yes

    Qt modules and options:
    Qt D-Bus ............... yes (loading dbus-1 at runtime)
    Qt Concurrent .......... yes
    Qt GUI ................. yes
    Qt Widgets ............. yes
    Large File ............. yes
    QML debugging .......... yes
    Use system proxies ..... no

    Support enabled for:
    Accessibility .......... yes
    ALSA ................... yes
    CUPS ................... yes
    Evdev .................. yes
    FontConfig ............. no
    FreeType ............... yes (bundled copy)
    Glib ................... no
    GStreamer .............. no
    GTK theme .............. no
    HarfBuzz ............... yes (bundled copy)
    Iconv .................. yes
    ICU .................... yes
    Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using system library)
    PNG .................. yes (in QtGui, using bundled copy)
    libinput................ no
    Logging backends:
    journald ............... no
    syslog ............... no
    mtdev .................. no
    Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    libproxy.............. no
    OpenSSL .............. yes (loading libraries at run-time)
    OpenGL / OpenVG:
    EGL .................. yes
    OpenGL ............... yes (OpenGL ES 2.0+)
    OpenVG ............... no
    PCRE ................... yes (bundled copy)
    pkg-config ............. yes
    PulseAudio ............. no
    QPA backends:
    DirectFB ............. no
    EGLFS ................ yes
    EGLFS i.MX6 ........ no
    EGLFS i.MX6 Wayland. no
    EGLFS EGLDevice .... no
    EGLFS GBM .......... no
    EGLFS Mali ......... no
    EGLFS Raspberry Pi . yes
    EGLFS X11 .......... no
    LinuxFB .............. yes
    Mir client............ no
    XCB .................. yes (bundled copy)
    EGL on X ........... no
    GLX ................ yes
    MIT-SHM ............ yes
    Xcb-Xlib ........... yes
    Xcursor ............ yes (loaded at runtime)
    Xfixes ............. yes (loaded at runtime)
    Xi ................. no
    Xi2 ................ yes
    Xinerama ........... yes (loaded at runtime)
    Xrandr ............. yes (loaded at runtime)
    Xrender ............ yes
    XKB ................ yes
    XShape ............. yes
    XSync .............. yes
    XVideo ............. yes
    Session management ..... yes
    SQL drivers:
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. yes (plugin)
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. yes (plugin)
    tslib .................. no
    udev ................... yes
    xkbcommon-x11........... yes (bundled copy, XKB config root: not found)
    xkbcommon-evdev......... no
    zlib ................... yes (system library)

    WARNING: Could not find XKB config root, use -xkb-config-root to set a path to
    XKB configuration data. This is required for keyboard input support.

    NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1.
    Configure with '-qreal float' to create a build that is binary compatible with 5.1.

    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into /usr/local/qt5

    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.

    **TheBUKs@DESKTOP-5D6JDFN MSYS /c/qt/qt-build
    $ make
    cd qtbase/ && ( test -e Makefile || C:/qt/qt-build/qtbase/bin/qmake.exe C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qtbase.pro -o Makefile ) && C:/SysGCC/Raspberry/bin/make -f Makefile
    make[1]: Entering directory C:/Qt/qt-build/qtbase' C:/qt/qt-build/qtbase/bin/qmake.exe -o Makefile C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qtbase.pro make[1]: Leaving directoryC:/Qt/qt-build/qtbase'
    make[1]: Entering directory C:/Qt/qt-build/qtbase' cd src/ && ( test -e Makefile || C:/qt/qt-build/qtbase/bin/qmake.exe C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/src.pro -o Makefile ) && C:/SysGCC/Raspberry/bin/make -f Makefile make[2]: Entering directoryC:/Qt/qt-build/qtbase/src'
    C:/qt/qt-build/qtbase/bin/qmake.exe -o Makefile C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/src.pro
    make[2]: Leaving directory C:/Qt/qt-build/qtbase/src' make[2]: Entering directoryC:/Qt/qt-build/qtbase/src'
    cd corelib/ && ( test -e Makefile.qtzlib || C:/qt/qt-build/qtbase/bin/qmake.exe C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/qtzlib.pro -o Makefile.qtzlib ) && C:/SysGCC/Raspberry/bin/make -f Makefile.qtzlib
    make[3]: Entering directory C:/Qt/qt-build/qtbase/src/corelib' C:/qt/qt-build/qtbase/bin/qmake.exe -o Makefile.qtzlib C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/qtzlib.pro make[3]: Leaving directoryC:/Qt/qt-build/qtbase/src/corelib'
    make[3]: Entering directory C:/Qt/qt-build/qtbase/src/corelib' make[3]: Nothing to be done forfirst'.
    make[3]: Leaving directory C:/Qt/qt-build/qtbase/src/corelib' The syntax of the command is incorrect. make[2]: *** [sub-bootstrap-make_first] Error 1 make[2]: Leaving directoryC:/Qt/qt-build/qtbase/src'
    make[1]: *** [sub-src-make_first] Error 2
    make[1]: Leaving directory `C:/Qt/qt-build/qtbase'
    make: *** [module-qtbase-make_first] Error 2


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.