Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Crosscompiling zwischen Win7 und Beagle Bone Black



  • Hallo zusammen,

    ist es möglich zwischen Win7 und BBB direkt Qt Projekte zu programmieren / debuggen.

    Ich verwende ein Win7 Enterprise, gcc-linaro-arm-linux-gnueablihf (Compiler), qt-everywhere-opensource-src-5.2.1.zip,

    Ich hab mir ein kleines Skript geschrieben das leider momentan einen Fehler hervorruft mit "Arch.exe" => was im folgenden einen Fehler im "test" hervorruft.

    =============================

    echo "Qt static Cross-Compiler
    @ECHO off

    :: In den Ordner springen
    @if NOT exist "C:\Qt_BBB" mkdir "C:\Qt_BBB"
    @cd "C:\Qt_BBB"

    :: alten Ordner löschen => entzippen
    @if exist qt-everywhere-opensource-src-5.2.1 rm -R qt-everywhere-opensource-src-5.2.1
    "C:\Program Files (x86)\7-Zip\7z.exe" x qt-everywhere-opensource-src-5.2.1.zip

    :: 1. Ordner kopieren (Remote PC)
    cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\mkspecs\devices"
    @if exist "linux-beaglebone-g++" rm -R linux-beaglebone-g++
    @if NOT exist "linux-beaglebone-g++" mkdir "linux-beaglebone-g++"
    xcopy "C:\Qt_BBB\linux-beaglebone-g++*" ".\linux-beaglebone-g++" /S/E

    :: 2. Ordner kopieren (PC Plattform)
    cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\mkspecs"
    @if exist "win32-g++" rm -R win32-g++
    @if NOT exist "win32-g++" mkdir "win32-g++"
    xcopy "C:\Qt_BBB\win32-g++*" ".\win32-g++" /S/E

    :: 3. Ordner kopieren

    @if exist "linux-linaro-gnueabihf-g++" rm -R linux-linaro-gnueabihf-g++
    @if NOT exist "linux-linaro-gnueabihf-g++" mkdir "linux-linaro-gnueabihf-g++"
    xcopy "C:\Qt_BBB\linux-linaro-gnueabi-g++*" ".\linux-linaro-gnueabihf-g++" /S/E

    :: Umgebungsvariable setzen
    SET PATH=C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1;C:\Qt\Tools\mingw48_32\bin;C:\Qt\Tools\mingw48_32\opt\bin;C:\Windows\system32;C:\Windows;"C:\Program Files (x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10";"C:\Program Files (x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10\bin";"C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\config.tests\arch"
    SET LANG="en"

    SET QT_INSTALL_PREFIX=C:\Qt_BBB\Qt_Static_Win

    cd "C:\Qt_BBB"
    @if NOT exist "Qt_Static_Win" mkdir "."

    :: Arch Dateien einbinden
    cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\config.tests\arch"
    xcopy "C:\Qt_BBB\build*" "." /S/E

    :: Qt configurieren
    cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1"

    ::@if exist "configure.bat" rm configure.bat
    xcopy "C:\Qt_BBB\configure.bat" "." /S/E/Y

    configure.bat -static -debug-and-release -platform win32-g++ -arch generic -prefix "C:\Qt_BBB\Qt_Static_Win" -xplatform linux-linaro-gnueabihf-g++ -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests

    :: Bauen
    mingw32-make -k -j4

    =============================
    arch.pro habe ich mit static kompaliert (Win7, static)

    win32-g++/qmake.conf
    und linux-linaro-gnueabi-g++/qmake.conf

    habe ich folgendes hinzugefügt

    [QT-STATIC-PATCH]

    QMAKE_LFLAGS += -static -static-libgcc
    QMAKE_CFLAGS_RELEASE -= -O2
    QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
    DEFINES += QT_STATIC_BUILD
    CONFIG += static

    =============================

    linux-beaglebone-g++\qmake.conf

    ist die Floating-Point-Unit auf Hard gestellt
    COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard

    habe ich folgendes hinzugefügt

    [QT-STATIC-PATCH]

    QMAKE_LFLAGS += -static -static-libgcc
    QMAKE_CFLAGS_RELEASE -= -O2
    QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
    DEFINES += QT_STATIC_BUILD
    CONFIG += static

    ===========================
    hat jemand eine Ahnung was der Fehler sein kann?

    Vielen Dank im Voraus


Log in to reply