تعارف

بلاگ پوسٹس کی پچھلی سیریز میں

میں نے رسبیری کمپیوٹ ماڈیول پر رسبیئن کی تنصیب کے بارے میں لکھا اور اوبنٹو 20 پر کیو ٹی کریٹر کے لئے کراس کمپلیشن قائم کیا۔

یہ بلاگ پوسٹ - اس وقت - کیو ٹی ، raspi OS Bookworm اور Ubuntu 22.04 LTSکے تازہ ترین ورژن 6.8 کے لئے ایک اپ ڈیٹ ہے۔

ضروری شرائط

میں نے مندرجہ ذیل ہارڈ اور سافٹ ویئر استعمال کیا:

  • Raspberry Pi 4
  • تجویز کردہ سافٹ ویئر کے بغیرraspi OS Bookworm
  • Ubuntu 22.04 LTS
  • Qt 6.8
  • QtCreator 14.02

نوٹ

اگر آپ کے پاس کافی ریم اور سی پی یو کور کے ساتھ لیپ ٹاپ یا ڈیسک ٹاپ کمپیوٹر ہے تو ، آپ ورچوئل مشین میں کراس کمپلیشن کرسکتے ہیں۔ لیکن میں نے تجربہ کیا، کہ ایک مقامی کمپیوٹر بہت تیز ہے اور کم غلطیاں پیدا کرتا ہے.

میرے کوڈ کی مثالوں میں فائل راستوں اور آئی پی پتوں پر ایک نظر ڈالیں اور انہیں اپنی ضروریات کے مطابق ایڈجسٹ کریں۔

Setup Raspberry Pi

  • https://www.raspberrypi.com/software/operating-systems سے رسپی او ایس ڈاؤن لوڈ کریں
  • 2024-07-04-رسپیوس-بک ورم-آرم64.آئی ایم جی.ایکس زیڈ: ڈیسک ٹاپ کے ساتھ رسبیری پائی او ایس کے ساتھ 64 بٹ (تجویز کردہ سافٹ ویئر کے ساتھ نہیں)
  • بلینا ایچر کے ساتھ ایس ڈی کارڈ پر فلیش امیج
  • انسٹالیشن پر عمل کریں اور ریموٹ کنیکٹ (ایس ایس ایچ) کی ترتیب کو مت بھولیں۔
  • میرے معاملے میں ایس ایس ایچ -> کے ساتھ آر پی آئی سے آئی پی ایڈریس 192.168.2.167 اور اپنے اوبنٹو میزبان سے صارف پائی -> سے رابطہ کریں۔
ssh pi@192.168.2.167
  • ضروری سافٹ ویئر انسٹال کریں:
sudo apt-get install libboost-all-dev libudev-dev libinput-dev libts-dev libmtdev-dev libjpeg-dev libfontconfig1-dev libssl-dev libdbus-1-dev libglib2.0-dev libxkbcommon-dev libegl1-mesa-dev libgbm-dev libgles2-mesa-dev mesa-common-dev libasound2-dev libpulse-dev gstreamer1.0-omx libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev  gstreamer1.0-alsa libvpx-dev libsrtp2-dev libsnappy-dev libnss3-dev "^libxcb.*" flex bison libxslt-dev ruby gperf libbz2-dev libcups2-dev libatkmm-1.6-dev libxi6 libxcomposite1 libfreetype6-dev libicu-dev libsqlite3-dev libxslt1-dev 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libx11-dev freetds-dev libsqlite3-dev libpq-dev libiodbc2-dev firebird-dev libxext-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev libxi-dev libdrm-dev libxcb-xinerama0 libxcb-xinerama0-dev libatspi2.0-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxss-dev libxtst-dev libpci-dev libcap-dev libxrandr-dev libdirectfb-dev libaudio-dev libxkbcommon-x11-dev gdbserver
  • Qt 6 انسٹالیشن کے لئے ایک فولڈر بنائیں:
sudo mkdir /usr/local/qt6
  • جی سی سی ، ایل ڈی اور ایل ڈی ڈی کے ورژن دریافت کریں۔ بعد میں کراس کمپائلر بنانے کے لئے اسی ورژن کا سورس کوڈ ڈاؤن لوڈ کیا جانا چاہئے۔
pi@raspberrypi:~ $ gcc --version
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 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.

pi@raspberrypi:~ $ ld --version
GNU ld (GNU Binutils for Debian) 2.40
Copyright (C) 2023 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

pi@raspberrypi:~ $ ldd --version
ldd (Debian GLIBC 2.36-9+rpt2+deb12u8) 2.36
Copyright (C) 2022 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.
Written by Roland McGrath and Ulrich Drepper.
  • ~/.bashrc کے اختتام پر مندرجہ ذیل کوڈ کا ٹکڑا شامل کریں اور تبدیلیوں کو اپ ڈیٹ کریں:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/qt6/lib/
source ~/.bashrc

Setup Ubuntu 22.04 LTS

  • سافٹ ویئر پیکیجز کے تازہ ترین ورژن میں اپ ڈیٹ کریں:
sudo apt update
sudo apt upgrade
  • مندرجہ ذیل پیکیجز انسٹال کریں:
sudo apt-get install make build-essential libclang-dev ninja-build gcc git bison python3 gperf pkg-config libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev build-essential gawk git texinfo bison file wget libssl-dev gdbserver gdb-multiarch libxcb-cursor-dev
### ماخذ سے تازہ ترین سی میک ورژن بنائیں:
cd ~
wget https://github.com/Kitware/CMake/releases/download/v3.30.5/cmake-3.30.5.tar.gz
tar -xzvf cmake-3.30.5.tar.gz
cd cmake-3.30.5
./bootstrap
make -j$(nproc)
sudo make install
# Update PATH Environment Variable
which cmake
/usr/local/bin/cmake
export PATH=/usr/local/bin/cmake:$PATH
source ~/.bashrc
cmake --version
### جی سی سی کو کراس کمپائلر کے طور پر بنائیں

ضروری سورس کوڈ ڈاؤن لوڈ کریں۔ آپ کو اپنی ضروریات کے مطابق مندرجہ ذیل احکامات میں ترمیم کرنا چاہئے. اس وقت کے لئے جب میں یہ صفحہ بناتا ہوں، وہ ہیں:

  • GCC 12.2.0
  • binutils 2.40(ld version)
  • glibc 2.36(ldd version)
cd ~
mkdir gcc_all && cd gcc_all
wget https://ftpmirror.gnu.org/binutils/binutils-2.40.tar.bz2
wget https://ftpmirror.gnu.org/glibc/glibc-2.36.tar.bz2
wget https://ftpmirror.gnu.org/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz
git clone --depth=1 https://github.com/raspberrypi/linux
tar xf binutils-2.40.tar.bz2
tar xf glibc-2.36.tar.bz2
tar xf gcc-12.2.0.tar.gz
rm *.tar.*
cd gcc-12.2.0
contrib/download_prerequisites
  • کمپائلر انسٹالیشن کے لئے ایک فولڈر بنائیں.
sudo mkdir -p /opt/cross-pi-gcc
sudo chown $USER /opt/cross-pi-gcc
export PATH=/opt/cross-pi-gcc/bin:$PATH
  • مندرجہ بالا فولڈر میں کرنل ہیڈر کاپی کریں۔
cd ~/gcc_all
cd linux
KERNEL=kernel7
make ARCH=arm64 INSTALL_HDR_PATH=/opt/cross-pi-gcc/aarch64-linux-gnu headers_install
  • بنوٹل بنائیں.
cd ~/gcc_all
mkdir build-binutils && cd build-binutils
../binutils-2.40/configure --prefix=/opt/cross-pi-gcc --target=aarch64-linux-gnu --with-arch=armv8 --disable-multilib
make -j 8
make install
  • جی سی سی -12.2.0 / لیبسینیٹیزر / اسان / asan_linux.cpp میں ترمیم کریں۔ کوڈ کا درج ذیل ٹکڑا شامل کریں۔
#ifndef PATH_MAX
#define PATH_MAX 4096
#endif
  • جی سی سی کی جزوی تعمیر کریں۔
cd ~/gcc_all
mkdir build-gcc && cd build-gcc
../gcc-12.2.0/configure --prefix=/opt/cross-pi-gcc --target=aarch64-linux-gnu --enable-languages=c,c++ --disable-multilib
make -j8 all-gcc
make install-gcc
  • جزوی طور پر گلیب کی تعمیر کریں.
cd ~/gcc_all
mkdir build-glibc && cd build-glibc
../glibc-2.36/configure --prefix=/opt/cross-pi-gcc/aarch64-linux-gnu --build=$MACHTYPE --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-headers=/opt/cross-pi-gcc/aarch64-linux-gnu/include --disable-multilib libc_cv_forced_unwind=yes
make install-bootstrap-headers=yes install-headers
make -j8 csu/subdir_lib
install csu/crt1.o csu/crti.o csu/crtn.o /opt/cross-pi-gcc/aarch64-linux-gnu/lib
aarch64-linux-gnu-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o /opt/cross-pi-gcc/aarch64-linux-gnu/lib/libc.so
touch /opt/cross-pi-gcc/aarch64-linux-gnu/include/gnu/stubs.h
  • جی سی سی پر واپس جائیں.
cd ~/gcc_all/build-gcc
make -j8 all-target-libgcc
make install-target-libgcc
  • عمارت کی تعمیر مکمل کریں.
cd ~/gcc_all/build-glibc
make -j8
make install
  • جی سی سی کی تعمیر مکمل کریں.
cd ~/gcc_all/build-gcc
make -j8
make install

اس موقع پر ، ہمارے پاس جی سی سی کے ساتھ ایک مکمل کراس کمپائلر ٹول چین ہے۔ فولڈر gcc_all کی مزید ضرورت نہیں ہے۔ آپ اسے حذف کرسکتے ہیں۔</:code19:></:code18:></:code17:></:code16:></:code15:></:code14:></:code13:></:code12:></:code11:></:code10:>

</:code9:>

</:code8:></:code7:>

عمارت Qt6

کیو ٹی 6 بنانے کے دو امکانات ہیں۔ ڈاؤن لوڈ کرنے کے لئے ایک "single" (https://download.qt.io/official_releases/qt/6.8/6.8.0/single/qt-everywhere-src-6.8.0.tar.xz) ورژن ہے ، جس میں qtbase اور تمام ذیلی ماڈیول شامل ہیں۔ یہ بہت بھاری سامان ہے اور اسے مرتب کرنے کے لئے بہت طاقت اور وقت کی ضرورت ہے.

میری سفارش یہ ہے کہ qtbase کو بنیاد کے طور پر مرتب کریں اور اس کے بعد صرف ہر ذیلی ماڈیول کو مرتب کریں جس کی آپ کو الگ سے ضرورت ہے۔

  • سائس روٹ اور کیو ٹی 6 کے لئے فولڈر بنائیں۔ میں اس فولڈر کو اپنے ورک اسپیس / کیو ٹی-آر پی آئی-کراس کمپلیشن ڈائریکٹری میں بناتا ہوں۔
cd ~/workspace/qt-rpi-cross-compilation
mkdir rpi-sysroot rpi-sysroot/usr rpi-sysroot/opt
mkdir qt6 qt6/host qt6/pi qt6/host-build qt6/pi-build qt6/src
  • QtBase سورس کوڈ ڈاؤن لوڈ کریں
cd ~/workspace/qt-rpi-cross-compilation/qt6/src
wget https://download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtbase-everywhere-src-6.8.0.tar.xz
tar xf qtbase-everywhere-src-6.8.0.tar.xz
### میزبان کے لئے Qt6 بنائیں
cd ~/workspace/qt-rpi-cross-compilation/qt6/host-build/
cmake ../src/qtbase-everywhere-src-6.8.0/ -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$HOME/qt6/host
cmake --build . --parallel 8
cmake --install .

بینری ~/ورک اسپیس/کیو ٹی-آر پی آئی-کراس کمپلیشن/کیو ٹی 6/میزبان میں ہوں گے۔

Build Qt6 for rpi

ایس ایس ایچ کے ذریعے آر ync کا استعمال کرتے ہوئے آر پی آئی سے کچھ فولڈرز کاپی اور پیسٹ کریں۔

cd ~
rsync -avz --rsync-path="sudo rsync" pi@192.168.2.167:/usr/include workspace/qt-rpi-cross-compilation/rpi-sysroot/usr
rsync -avz --rsync-path="sudo rsync" pi@192.168.2.167:/lib workspace/qt-rpi-cross-compilation/rpi-sysroot
rsync -avz --rsync-path="sudo rsync" pi@192.168.2.167:/usr/lib workspace/qt-rpi-cross-compilation/rpi-sysroot/usr 
rsync -avz --rsync-path="sudo rsync" pi@192.168.2.167:/opt/vc workspace/qt-rpi-cross-compilation/rpi-sysroot/opt
  • ~/ورک اسپیس/کیو ٹی-آر پی آئی-کراس کمپلیشن/کیو ٹی 6 میں ٹول چین ڈاٹ سی ایم اے کے نام سے ایک فائل بنائیں۔ آپ کو اپنے ماحول میں لائن "سیٹ (سیٹ (TARGET_SYSROOT / ہوم / فیکٹری / ورک اسپیس / کیو ٹی-آر پی آئی-کراس کمپلیشن / آر پی آئی-سیس روٹ) کو ایڈجسٹ کرنے کی ضرورت ہے۔
cmake_minimum_required(VERSION 3.18)
include_guard(GLOBAL)

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

# You should change location of sysroot to your needs.
set(TARGET_SYSROOT /home/factory/workspace/qt-rpi-cross-compilation/rpi-sysroot)
set(TARGET_ARCHITECTURE aarch64-linux-gnu)
set(CMAKE_SYSROOT ${TARGET_SYSROOT})

set(ENV{PKG_CONFIG_PATH} $PKG_CONFIG_PATH:${CMAKE_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}/pkgconfig)
set(ENV{PKG_CONFIG_LIBDIR} /usr/lib/pkgconfig:/usr/share/pkgconfig/:${TARGET_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}/pkgconfig:${TARGET_SYSROOT}/usr/lib/pkgconfig)
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})

set(CMAKE_C_COMPILER /opt/cross-pi-gcc/bin/${TARGET_ARCHITECTURE}-gcc)
set(CMAKE_CXX_COMPILER /opt/cross-pi-gcc/bin/${TARGET_ARCHITECTURE}-g++)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem=/usr/include -isystem=/usr/local/include -isystem=/usr/include/${TARGET_ARCHITECTURE}")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")

set(QT_COMPILER_FLAGS "-march=armv8-a")
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-rpath-link=${TARGET_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE} -Wl,-rpath-link=$HOME/qt6/pi/lib")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})

include(CMakeInitializeConfigs)

function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
  if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
    set(CMAKE_${CMAKE_MATCH_1}_FLAGS_INIT "${QT_COMPILER_FLAGS}")
        
    foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
      if (DEFINED QT_COMPILER_FLAGS_${config})
        set(CMAKE_${CMAKE_MATCH_1}_FLAGS_${config}_INIT "${QT_COMPILER_FLAGS_${config}}")
      endif()
    endforeach()
  endif()


  if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
    foreach (config SHARED MODULE EXE)
      set(CMAKE_${config}_LINKER_FLAGS_INIT "${QT_LINKER_FLAGS}")
    endforeach()
  endif()

  _cmake_initialize_per_config_variable(${ARGV})
endfunction()

set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})

set(GL_INC_DIR ${TARGET_SYSROOT}/usr/include)
set(GL_LIB_DIR ${TARGET_SYSROOT}:${TARGET_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE}/:${TARGET_SYSROOT}/usr:${TARGET_SYSROOT}/usr/lib)

set(EGL_INCLUDE_DIR ${GL_INC_DIR})
set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libEGL.so)

set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libOpenGL.so)

set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libGLESv2.so)

set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libGLESv2.so)

set(gbm_INCLUDE_DIR ${GL_INC_DIR})
set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libgbm.so)

set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libdrm.so)

set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/${TARGET_ARCHITECTURE}/libxcb.so)

list(APPEND CMAKE_LIBRARY_PATH ${CMAKE_SYSROOT}/usr/lib/${TARGET_ARCHITECTURE})
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/${TARGET_ARCHITECTURE}/cmake")
  • مطلق علامتی لنکس کو ٹھیک کریں
cd ~/workspace/qt-rpi-cross-compilation
wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
chmod +x sysroot-relativelinks.py 
python3 sysroot-relativelinks.py rpi-sysroot
  • آر پی آئی کے لئے ماخذ کوڈ مرتب کریں۔
cd $HOME/workspace/qt-rpi-cross-compilation/qt6/pi-build
cmake ../src/qtbase-everywhere-src-6.8.0/ -GNinja -DCMAKE_BUILD_TYPE=Release -DINPUT_opengl=es2 -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=$HOME/workspace/qt-rpi-cross-compilation/qt6/host -DCMAKE_STAGING_PREFIX=$HOME/workspace/qt-rpi-cross-compilation/qt6/pi -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_TOOLCHAIN_FILE=$HOME/workspace/qt-rpi-cross-compilation/qt6/toolchain.cmake -DQT_QMAKE_TARGET_MKSPEC=devices/linux-rasp-pi4-aarch64 -DQT_FEATURE_xcb=ON -DFEATURE_xcb_xlib=ON -DQT_FEATURE_xlib=ON
cmake --build . --parallel 8
cmake --install .
  • بائنری کو آر پی آئی کو بھیجیں۔
rsync -avz --rsync-path="sudo rsync" $HOME/workspace/qt-rpi-cross-compilation/qt6/pi/* pi@192.168.2.167:/usr/local/qt6

</:code21:></:code20:>

Configure QtCreator

  • مرتب کرنے والے مرتب کریں

    کیو ٹی 6.8 راسپبیری پائی کے لئے ایک کمپیوٹر کا اسکرین شاٹ
    کیو ٹی 6.8 راسپبیری پائی کے لئے ایک کمپیوٹر کا اسکرین شاٹ
  • ڈیبگرز مرتب کریں

    کیو ٹی 6.8 راسپبیری پائی کے لئے ایک کمپیوٹر کا اسکرین شاٹ
  • آلات مرتب کریں

    کیو ٹی 6.8 راسپبیری پائی کے لئے ایک کمپیوٹر کا اسکرین شاٹ بٹن "ٹیسٹ" کے ساتھ کنکشن کی جانچ کریں
  • Qt ورژن مرتب کریں

    کیو ٹی 6.8 راسپبیری پائی کے لئے ایک کمپیوٹر کا اسکرین شاٹ
  • کٹس مرتب کریں

    کیو ٹی 6.8 راسپبیری پائی کے لئے ایک کمپیوٹر کا اسکرین شاٹ
  • "سی میک کنفیگریشن" پر تبدیل کریں پر کلک کریں اور فالو کمانڈ شامل کریں۔

-DCMAKE_TOOLCHAIN_FILE:UNINITIALIZED=/home/pmy/qt6/pi/lib/cmake/Qt6/qt.toolchain.cmake
### کیو ٹی تخلیق کار منصوبوں کی ترتیبات

اگر آپ QtCreator میں کوئی پروجیکٹ بناتے ہیں تو ، آپ کو "Run" ترتیب کو ایڈجسٹ کرنا ہوگا۔ "Environment" آپ کو شامل کرنا ہوگا:

-LD_LIBRARY_PATH=:/usr/local/qt6/lib/

</:code32:>

Add Qt Submodules

QML ماڈیول شامل کریں

  • ماخذ کوڈ ڈاؤن لوڈ کریں:
cd ~/workspace/qt-rpi-cross-compilation/qt6/src
wget https://download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtshadertools-everywhere-src-6.8.0.tar.xz
tar xf qtshadertools-everywhere-src-6.8.0.tar.xz
wget https://download.qt.io/official_releases/qt/6.8/6.8.0/submodules/qtdeclarative-everywhere-src-6.8.0.tar.xz
tar xf qtdeclarative-everywhere-src-6.8.0.tar.xz

آپ کو ~/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/dependencies.yaml اور ~/workspace/qt-rpi-cross-compilation/qt6/src/qtshadertools-everywhere-src-6.8.0/dependencies.yamlپر انحصار کی جانچ پڑتال کرنی ہوگی۔

اس بات کو یقینی بنائیں کہ ضروری ماڈیول پہلے بنائے اور انسٹال کیے جائیں۔

  • میزبان کے لئے ماڈیول بنائیں.
cd ~/workspace/qt-rpi-cross-compilation/qt6/host-build
rm -rf *
$HOME/workspace/qt-rpi-cross-compilation/qt6/host/bin/qt-configure-module ../src/qtshadertools-everywhere-src-6.8.0
cmake --build . --parallel 8
cmake --install .
rm -rf *
$HOME/workspace/qt-rpi-cross-compilation/qt6/host/bin/qt-configure-module ../src/qtdeclarative-everywhere-src-6.8.0
cmake --build . --parallel 8
cmake --install .
  • آر پی آئی کے لئے ماڈیول بنائیں
cd ~/workspace/qt-rpi-cross-compilation/qt6/pi-build
rm -rf *
$HOME/workspace/qt-rpi-cross-compilation/qt6/pi/bin/qt-configure-module ../src/qtshadertools-everywhere-src-6.8.0
cmake --build . --parallel 8
cmake --install .
rm -rf *
$HOME/workspace/qt-rpi-cross-compilation/qt6/pi/bin/qt-configure-module ../src/qtdeclarative-everywhere-src-6.8.0
cmake --build . --parallel 8
cmake --install .
  • بائنری کو آر پی آئی کو بھیجیں۔
rsync -avz --rsync-path="sudo rsync" $HOME/workspace/qt-rpi-cross-compilation/qt6/pi/* pi@192.168.2.167:/usr/local/qt6

اعترافات

یہ ہدایات بنانے کے لئے استعمال ہونے والے ذرائع:

سب کا شکریہ۔

admin

اپ ڈیٹ کیا گیا: 16. October 2024
پڑھنے کا وقت: 6 minutes