日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT源码交叉编译

發布時間:2023/12/10 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT源码交叉编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

交叉編譯QT 源碼

板子:全志 V3S , arm32位cpu

  • ubuntu 虛擬機搭建好交叉編譯鏈環境,添加環境變量
  • ok3399@ubuntu:~$ echo $PATH /opt/OK3399-linux-release/host/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/
  • 使用arm-linux-gcc -v 確認編譯工具安裝OK

  • 解壓QT源碼

  • ok3399@ubuntu:/opt/qt/qt-5.13.1S-src$ ls build.sh LICENSE.FDL qtdatavis3d qtquickcontrols qtwayland _clang-format LICENSE.GPLv2 qtdeclarative qtquickcontrols2 qtwebchannel coin LICENSE.GPLv3 qtdoc qtremoteobjects qtwebengine config.cache LICENSE.LGPLv21 qtgamepad qtscript qtwebglplugin config.log LICENSE.LGPLv3 qtgraphicaleffects qtscxml qtwebsockets config.opt LICENSE.QT-LICENSE-AGREEMENT-4.0 qtimageformats qtsensors qtwebview config.status Makefile qtlocation qtserialbus qtwinextras config.summary qt3d qtlottie qtserialport qtx11extras config.tests qtactiveqt qtmacextras qtspeech qtxmlpatterns configure qtandroidextras qtmultimedia qtsvg README configure.bat qtbase qtnetworkauth qttools configure.json qtcharts qt.pro qttranslations gnuwin32 qtconnectivity qtpurchasing qtvirtualkeyboard
  • 復制 make spec 文件
    將 linux-arm-gnueabi-g++ 文件夾 復制為新的 arm-linux-g++(和編譯器同名)文件夾,不要修改qt源碼自帶的。
  • ok3399@ubuntu:/opt/qt/qt-5.13.1S-src/qtbase/mkspecs$ ls aix-g++ integrity-armv7 linux-icc-k1om qdevice.pri win32-clang-msvc aix-g++-64 integrity-armv7-imx6 linux-llvm qmodule.pri win32-g++ android-clang integrity-armv8-rcar linux-lsb-g++ qnx-aarch64le-qcc win32-icc android-g++ integrity-x86 lynxos-g++ qnx-armle-v7-qcc win32-icc-k1om arm-linux-g++ linux-aarch64-gnu-g++ macx-clang qnx-x86-64-qcc win32-msvc common linux-arm-gnueabi-g++ macx-g++ qnx-x86-qcc winrt-arm64-msvc2017 cygwin-g++ linux-clang macx-icc solaris-cc winrt-arm64-msvc2019 darwin-g++ linux-clang-32 macx-ios-clang solaris-cc-64 winrt-arm-msvc2015 devices linux-clang-libc++ macx-tvos-clang solaris-cc-64-stlport winrt-arm-msvc2017 dummy linux-clang-libc++-32 macx-watchos-clang solaris-cc-stlport winrt-arm-msvc2019 features linux-g++ macx-xcode solaris-g++ winrt-x64-msvc2015 freebsd-clang linux-g++-32 modules solaris-g++-64 winrt-x64-msvc2017 freebsd-g++ linux-g++-64 modules-inst unsupported winrt-x64-msvc2019 haiku-g++ linux-icc netbsd-g++ wasm-emscripten winrt-x86-msvc2015 hpuxi-g++-64 linux-icc-32 openbsd-g++ win32-arm64-msvc2017 winrt-x86-msvc2017 hurd-g++ linux-icc-64 qconfig.pri win32-clang-g++ winrt-x86-msvc2019
  • 在copy的make spec 修改 即arm-linux-g++ 下的qmake.conf
  • ok3399@ubuntu:/opt/qt/qt-5.13.1S-src/qtbase/mkspecs/arm-linux-g++$ ls qmake.conf qplatformdefs.h

    修改后如下,使用交叉編譯器的絕對路徑設置 QMAKE_CC。。。,否則可能會找不到編譯器

    # # qmake configuration for building with arm-linux-gnueabi-g++ #MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf)# modifications to g++.conf QMAKE_CC = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-gcc QMAKE_CXX = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-g++ QMAKE_LINK = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-g++ QMAKE_LINK_SHLIB = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-g++# modifications to linux.conf QMAKE_AR = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-ar cqs QMAKE_OBJCOPY = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-objcopy QMAKE_NM = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-nm -P QMAKE_STRIP = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux--strip load(qt_config)
  • 編寫構建腳本
  • #!/bin/sh ./configure -confirm-license \-xplatform arm-linux-g++\-opensource \-verbose \-skip qt3d \-skip qtquickcontrols \-skip qtwebchannel \-skip qtactiveqt \-skip qtandroidextras \-skip qtdeclarative \-skip qtimageformats \-skip qtmacextras \-skip qtx11extras \-skip qtxmlpatterns \-skip qtconnectivity \-skip qtdoc \-skip qtgraphicaleffects \-skip qtlocation \-skip qtmultimedia \-skip qtsensors \-skip qttools \-skip qttranslations \-skip qtwayland \-skip qtwebchannel \-skip qtwebengine \-skip qtwinextras \-no-opengl \-widgets \-prefix /opt/qt/qt_v3s

    -xplatform 是目標平臺,使用交叉編譯器的名字即可。
    -prefix /opt/qt/qt_v3s 編譯后qt存放位置

  • 執行build腳本后,根據提示進行 make , make install 生成文件確認
  • ok3399@ubuntu:/opt/qt/qt_v3s$ ls bin doc examples include lib mkspecs plugins

    總結

    以上是生活随笔為你收集整理的QT源码交叉编译的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。