Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Cross-compilation in Raspbian arm64 environment
Forum Update on Monday, May 27th 2025

Cross-compilation in Raspbian arm64 environment

Scheduled Pinned Locked Moved Unsolved General and Desktop
1 Posts 1 Posters 176 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    IknowQT
    wrote on last edited by
    #1
    [Ubuntu]
    sudo apt-get update
    sudo apt-get upgrade
    ping 192.168.16.25
    sudo bash
    apt-get install gcc git bison python gperf pkg-config
    apt install make
    apt install libclang-dev
    apt install build-essential
    mkdir /opt/qt5pi
    chown devqt:devqt /opt/qt5pi
    cd /opt/qt5pi/
    
    wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
    tar xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz 
    export PATH=$PATH:/opt/qt5pi/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
    nano ~/.bashrc
    
    wget http://ftp.yz.yamagata-u.ac.jp/pub/qtproject/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
    tar xf qt-everywhere-src-5.15.2.tar.xz 
    cat qt-everywhere-src-5.15.2/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
    
    ------------------------------------------------------------------------------------ 
    *백업
    
    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    
    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = arm-linux-gnueabi-gcc
    QMAKE_CXX               = arm-linux-gnueabi-g++
    QMAKE_LINK              = arm-linux-gnueabi-g++
    QMAKE_LINK_SHLIB        = arm-linux-gnueabi-g++
    
    # modifications to linux.conf
    QMAKE_AR                = arm-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = arm-linux-gnueabi-objcopy
    QMAKE_NM                = arm-linux-gnueabi-nm -P
    QMAKE_STRIP             = arm-linux-gnueabi-strip
    load(qt_config)
    ---------------------------------------------------------------------------------------------------------------------
    
    ------------------------------------- 아래 실행전 라즈베리파이에 설치가 끝나야 된다 -------------------------------------
    ping 192.168.16.25
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/lib sysroot
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/usr/include sysroot/usr
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/usr/lib sysroot/usr 
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/opt/vc sysroot/opt
    
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.160:/lib sysroot
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.160:/usr/include sysroot/usr
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.160:/usr/lib sysroot/usr 
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.160:/opt/vc sysroot/opt
    
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/lib sysroot
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/usr/include sysroot/usr
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/usr/lib sysroot/usr 
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/opt/vc sysroot/opt
    
    
    rsync -avz --rsync-path="sudo rsync" ubuntu@194.1.27.160:/usr/lib sysroot
    rsync -avz --rsync-path="sudo rsync" ubuntu@194.1.27.160:/usr/include sysroot/usr
    rsync -avz --rsync-path="sudo rsync" ubuntu@194.1.27.160:/usr/lib sysroot/usr 
    rsync -avz --rsync-path="sudo rsync" ubuntu@194.1.27.160:/opt/vc sysroot/opt
    
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/usr/lib sysroot
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/usr/include sysroot/usr
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/usr/lib sysroot/usr 
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.166:/opt/vc sysroot/opt
    
    ---------------------------------------------------------------------------------------------------------------------
    mv sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0 sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0_backup
    mv sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0 sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0_backup
    ln -s sysroot/opt/vc/lib/libEGL.so sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0
    ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0
    ln -s sysroot/opt/vc/lib/libEGL.so sysroot/opt/vc/lib/libEGL.so.1
    ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/opt/vc/lib/libGLESv2.so.2
    ---------------------------------------------------------------------------------------------------------------------
    ls sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0
    mv sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0 sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0_backup
    ln -s sysroot/opt/vc/lib/libEGL.so sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.1.0
    mv sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0 sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0_backup
    ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0
    mv sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0 sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0_backup
    ls sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0
    ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0
    ln -s sysroot/opt/vc/lib/libEGL.so sysroot/opt/vc/lib/libEGL.so.1
    ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/opt/vc/lib/libGLESv2.so.2
    
    wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
    chmod +x sysroot-relativelinks.py 
    ./sysroot-relativelinks.py sysroot
    
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/usr/lib sysroot 
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/usr/include sysroot/usr
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/usr/lib sysroot/usr
    rsync -avz --rsync-path="sudo rsync" pi@194.1.27.169:/opt/vc sysroot/opt/
    ./sysroot-relativelinks.py sysroot
    
    mkdir qt5build
    cd qt5build/
    
    ../qt-everywhere-src-5.15.2/configure -opengl es2 -device linux-rasp-pi4-v3d-g++ -device-option CROSS_COMPILE=/opt/qt5pi/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /opt/qt5pi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtdatavis3d -nomake examples -make libs -pkg-config -no-use-gold-linker -v
    
    ../qt-everywhere-src-5.15.2/configure -opengl es2 -device linux-rasp-pi4-v3d-g++ -device-option CROSS_COMPILE=/opt/qt5pi_ubuntu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- -sysroot /opt/qt5pi_ubuntu/sysroot -prefix /usr/local/qt5pi_ubuntu -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtdatavis3d -nomake examples -make libs -pkg-config -no-use-gold-linker -v
    
    ../qt-everywhere-src-5.15.2/configure -developer-build  -opensource -nomake examples -nomake tests
    
    
    
    
    make -j8
    make install -j8
    cd /opt/qt5pi/
    
    

    A 32-bit cross-compilation environment was built, but as the OS changed to 64, a 64-bit cross-compile environment must be built.

    This is how to build a 32-bit cross-compile, is it much different from this and building a 64-bit cross-compile environment?

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved