chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ElfBoard技術(shù)貼|如何在ELF 1開發(fā)板上交叉移植Qt

ElfBoard ? 2025-02-24 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式系統(tǒng)開發(fā)領(lǐng)域,針對(duì)特定硬件平臺(tái)進(jìn)行Qt框架的移植與適配是一項(xiàng)關(guān)鍵技術(shù)任務(wù)。作為業(yè)界主流的跨平臺(tái)應(yīng)用開發(fā)框架,Qt憑借其完善的圖形界面支持能力,在嵌入式開發(fā)圖形界面應(yīng)用程序中占據(jù)重要地位。本文將基于ELF 1開發(fā)板詳細(xì)闡述Qt 5.12 版本的交叉編譯與系統(tǒng)移植方案。

1、源碼下載
Qt5.12可在Qt官網(wǎng)或者GitHub等下載,以下為GitHub鏈接:https://github.com/zhoujun59761/qtsrc512

2、源碼配置修改

(1)解壓源碼包并設(shè)置權(quán)限

elf@ubuntu:~/work$ unzip qtsrc512-master.zip elf@ubuntu:~/work$ chmod 777 -R qtsrc512-master(設(shè)置最大權(quán)限,避免編譯時(shí)權(quán)限問題) elf@ubuntu:~/work$ cd qtsrc512-master/

(2)修改qmake.conf配置文件

由于ELF 1開發(fā)板是 ARM 架構(gòu),所以需要修改 qmake.conf 文件以適應(yīng)交叉編譯環(huán)境。編輯文件路徑為 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,并進(jìn)行如下修改。

elf@ubuntu:~/work/qtsrc512-master$ vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

內(nèi)容如下:

# # qmake configuration for building with arm-linux-gnueabi-g++ # 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-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi QMAKE_CXX = arm-poky-linux-gnueabi-g++ -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi QMAKE_LINK = arm-poky-linux-gnueabi-g++ -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi QMAKE_LINK_SHLIB = arm-poky-linux-gnueabi-g++ -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi QMAKE_CFLAGS = -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard QMAKE_CXXFLAGS = -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard QMAKE_LDFLAGS = -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now # modifications to linux.conf QMAKE_AR = arm-poky-linux-gnueabi-ar cqs QMAKE_OBJCOPY = arm-poky-linux-gnueabi-objcopy QMAKE_NM = arm-poky-linux-gnueabi-nm -P load(qt_config)

wKgZPGe8KI-ASSOIAAGWnoe7dps892.pngwKgZO2e8KZCATJ99AACbt5R82WA802.png

3、交叉編譯

(1)編寫編譯腳本

由于 configure 生成 Makefile 時(shí)需要大量參數(shù),可以編寫一個(gè)腳本保存這些配置。首先創(chuàng)建腳本文件 shell.sh。

elf@ubuntu:~/work/qtsrc512-master$ touch shell.sh elf@ubuntu:~/work/qtsrc512-master$ chmod 777 shell.sh

在 shell.sh 中填入以下內(nèi)容(-prefix 后面的路徑需要根據(jù)實(shí)際情況修改)。

./configure -prefix /home/elf/work/qtsrc512-master/__install \ -opensource \ -confirm-license \ -release \ -shared \ -xplatform linux-arm-gnueabi-g++ \ -optimized-qmake \ -c++std c++11 \ --rpath=no \ -pch \ -skip qt3d \ -skip qtactiveqt \ -skip qtandroidextras \ -skip qtcanvas3d \ -skip qtconnectivity \ -skip qtdatavis3d \ -skip qtdoc \ -skip qtgamepad \ -skip qtlocation \ -skip qtmacextras \ -skip qtnetworkauth \ -skip qtpurchasing \ -skip qtremoteobjects \ -skip qtscript \ -skip qtscxml \ -skip qtsensors \ -skip qtspeech \ -skip qtsvg \ -skip qttools \ -skip qttranslations \ -skip qtwayland \ -skip qtwebengine \ -skip qtwebview \ -skip qtwinextras \ -skip qtxmlpatterns \ -make libs \ -make examples \ -nomake tools -nomake tests \ -gui \ -widgets \ -dbus-runtime \ --glib=no \ --iconv=no \ --pcre=qt \ --zlib=qt \ -no-openssl \ --xcb=qt \ --freetype=qt \ --harfbuzz=qt \ -no-opengl \ --libpng=qt \ --libjpeg=qt \ --sqlite=qt \ -plugin-sql-sqlite \ -recheck-all \ -no-strip

(2)執(zhí)行環(huán)境變量

elf@ubuntu:~/work/qtsrc512-master$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

(3)編譯

運(yùn)行腳本并進(jìn)行編譯。

elf@ubuntu:~/work/qtsrc512-master$ ./shell.sh

執(zhí)行腳本可能會(huì)出現(xiàn)以下錯(cuò)誤。

+ cd qtbase + /home/elf/work/qtsrc512-master/qtbase/configure -top-level -prefix /home/elf/work/qtsrc512-master/__install -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 --rpath=no -pch -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtxmlpatterns -make libs -make examples -nomake tools -nomake tests -gui -widgets -dbus-runtime --glib=no --iconv=no --pcre=qt --zlib=qt -no-openssl --xcb=qt --freetype=qt --harfbuzz=qt -no-opengl --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -recheck-all Please make sure to unset the QMAKESPEC, XQMAKESPEC, QMAKEPATH, and QMAKEFEATURES environment variables prior to building Qt.

這是因?yàn)閁buntu中已經(jīng)有Qt的環(huán)境了,如需解決可以參考提示執(zhí)行如下命令。

elf@ubuntu:~/work/qtsrc512-master$ unset QMAKESPEC XQMAKESPEC QMAKEPATH QMAKEFEATURES

繼續(xù)執(zhí)行shell.sh腳本。

elf@ubuntu:~/work/qtsrc512-master$ ./shell.sh elf@ubuntu:~/work/qtsrc512-master$ make elf@ubuntu:~/work/qtsrc512-master$ make install

編譯完成后,__install 文件夾包含了 Qt 5.12 所需的所有文件。

elf@ubuntu:~/work/qtsrc512-master$ cd __install/ elf@ubuntu:~/work/qtsrc512-master/__install$ ls bin doc examples include lib mkspecs plugins qml

其中,lib文件夾為所需的lib庫,examples文件夾為demo工程。

4、功能測(cè)試

(1)打包Qt文件夾

將編譯生成的文件打包。

elf@ubuntu:~/work/qtsrc512-master/__install$ tar -cjvf qt5.12.tar.bz2 *

(2)解壓至開發(fā)板

將打包后的文件放到U盤,拷貝至開發(fā)板并解壓。

root@ELF1:~# tar -mxvf qt5.12.tar.bz2 -C /

(3)執(zhí)行環(huán)境變量

在開發(fā)板上設(shè)置環(huán)境變量,確保 Qt 正常運(yùn)行。其中export QT_ROOT=/ 為qt5.12文件相關(guān)的路徑(填解壓的路徑)。

export QT_ROOT=/ export QT_QPA_FONTDIR=/usr/share/fonts export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins export QT_PLUGIN_PATH=$QT_ROOT/plugins export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms export QML2_IMPORT_PATH=$QT_ROOT/qml //兩種顯示框架根據(jù)需求進(jìn)行設(shè)置 export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0 //采用Linuxfb顯示框架 export QT_QPA_PLATFORM=xcb:tty=/dev/fb0 //采用x11顯示框架


(4)運(yùn)行示例應(yīng)用

Linuxfb顯示框架運(yùn)行 Qt 的示例應(yīng)用進(jìn)行功能測(cè)試。

root@ELF1:~# /examples/charts/areachart/areachart

效果如下:

wKgZO2e8KtKAWDzCAACaFlaM06Y953.png

X11 顯示框架運(yùn)行 Qt 的示例應(yīng)用進(jìn)行功能測(cè)試。

root@ELF1:~# export DISPLAY=:0.0 root@ELF1:~# /examples/charts/areachart/areachar

效果如下:

wKgZO2e8KtuALgrYAABbL8jnvyI333.png

經(jīng)過上述一系列步驟就可以順利地將Qt 5.12版本交叉編譯并成功移植至ELF 1開發(fā)板。衷心希望本文能為屏幕前的小伙伴在嵌入式開發(fā)領(lǐng)域的Qt移植工作帶來實(shí)質(zhì)性的幫助與指導(dǎo)!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6071

    文章

    45256

    瀏覽量

    660090
  • 嵌入式
    +關(guān)注

    關(guān)注

    5175

    文章

    19977

    瀏覽量

    324425
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    6001

    瀏覽量

    110070
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    2

    文章

    317

    瀏覽量

    39889
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ElfBoard技術(shù)|如何在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的UART功能

    UART即通用異步收發(fā)器,是一種支持全雙工串行通信協(xié)議的接口。在i.MX6ULL處理器平臺(tái)上,該處理器原生支持多達(dá)8路的UART接口,提供了豐富的串行通信能力。 針對(duì)ELF 1開發(fā)板,實(shí)際引出
    的頭像 發(fā)表于 09-25 13:56 ?3030次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>的UART功能

    ElfBoard技術(shù)|ELF 1開發(fā)板適配攝像頭詳解

    ELF1ELF1S開發(fā)板適配的OV5640攝像頭,集成了CMOS圖像傳感器,作為一款500萬像素級(jí)別的攝像頭,不僅能夠支持最高達(dá)2592x1944分辨率的QSXGA圖像輸出,幀率可達(dá)15fps
    的頭像 發(fā)表于 12-27 10:16 ?1655次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>適配攝像頭詳解

    ElfBoard技術(shù)|如何在ELF 2開發(fā)板上部署v4l2loopback

    傳輸及AI視覺處理等場(chǎng)景展現(xiàn)出顯著應(yīng)用價(jià)值。本文將以ELF2開發(fā)板為載體,系統(tǒng)闡述v4l2loopback模塊的工程化部署全流程。一、設(shè)置環(huán)境首先需配置交叉編譯工
    的頭像 發(fā)表于 06-05 14:24 ?1739次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>ELF</b> 2<b class='flag-5'>開發(fā)板</b>上部署v4l2loopback

    ElfBoard技術(shù)|如何在【RK3588】ELF 2開發(fā)板上進(jìn)行根系統(tǒng)的定制

    ELF 2開發(fā)板已經(jīng)適配了Linux 5.10及Elf2 Desktop 22.04操作系統(tǒng),其中Elf2 Desktop 22.04系統(tǒng)是專為嵌入式設(shè)計(jì)的Ubuntu base。雖然
    的頭像 發(fā)表于 07-02 16:33 ?2603次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【RK3588】<b class='flag-5'>ELF</b> 2<b class='flag-5'>開發(fā)板</b>上進(jìn)行根系統(tǒng)的定制

    ElfBoard技術(shù)|如何在【RK3588】ELF 2開發(fā)板移植LVGL8.2

    隨著嵌入式設(shè)備對(duì)圖形用戶界面(GUI)的需求不斷提升,選擇一款高效、輕量且易于移植的GUI框架已成為項(xiàng)目開發(fā)中的關(guān)鍵環(huán)節(jié)。LVGL與Qt作為嵌入式領(lǐng)域廣泛使用的兩種GUI解決方案,在架構(gòu)設(shè)計(jì)、資源
    的頭像 發(fā)表于 10-15 08:52 ?1259次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【RK3588】<b class='flag-5'>ELF</b> 2<b class='flag-5'>開發(fā)板</b><b class='flag-5'>移植</b>LVGL8.2

    飛凌嵌入式ElfBoard ELF 1板卡-在ELF 1開發(fā)環(huán)境中使用QT Creator進(jìn)行遠(yuǎn)程調(diào)試

    。Qt Creator會(huì)通過網(wǎng)絡(luò)連接到遠(yuǎn)程設(shè)備,將調(diào)試信息傳輸回本地環(huán)境。下面將介紹如何在ELF 1開發(fā)環(huán)境中配置
    發(fā)表于 04-30 09:35

    飛凌嵌入式-ElfBoard-項(xiàng)目分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)開源項(xiàng)目

    工程師借助ELF 1S開發(fā)板完成的嵌入式物聯(lián)網(wǎng)項(xiàng)目,見證智慧與技術(shù)的火花。 關(guān)于這個(gè)項(xiàng)目的思維導(dǎo)圖,如下圖所示: 接下來,將會(huì)從云-網(wǎng)-邊-端的物聯(lián)網(wǎng)體系架構(gòu)出發(fā),描述整個(gè)開源項(xiàng)目的
    發(fā)表于 05-16 09:12

    技術(shù)分享 | i.MX8M Plus開發(fā)板交叉編譯qt5.15.2

    為了滿足客戶在啟揚(yáng)i.MX8MPlus開發(fā)板使用過程中編譯qt版本的需求,這里小編出一期關(guān)于i.MX8MPlus開發(fā)板交叉編譯qt5.15.
    的頭像 發(fā)表于 11-18 09:35 ?2495次閱讀
    <b class='flag-5'>技術(shù)</b>分享 | i.MX8M Plus<b class='flag-5'>開發(fā)板</b><b class='flag-5'>交叉</b>編譯<b class='flag-5'>qt</b>5.15.2

    ELF 1技術(shù)|在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的LED功能

    本次源碼適配工作是在NXPi.MX6ULLEVK評(píng)估的Linux內(nèi)核源碼(特定版本:Linux-imx_4.1.15)基礎(chǔ)上進(jìn)行的。主要目標(biāo)是調(diào)整功能接口引腳配置,以適應(yīng)ELF1開發(fā)板。下面以
    的頭像 發(fā)表于 12-29 10:04 ?1408次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>的LED功能

    ELF 1技術(shù)|如何移植Boa 到開發(fā)板

    Boa作為Web服務(wù)解決方案顯得尤為適宜。接下來,將跟各位小伙伴詳細(xì)介紹一下基于ELF1開發(fā)板移植Boa的方法。1、Boa官網(wǎng)下載源碼官網(wǎng)網(wǎng)址:Boadownlo
    的頭像 發(fā)表于 02-04 09:30 ?806次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如何<b class='flag-5'>移植</b>Boa 到<b class='flag-5'>開發(fā)板</b>上

    ELF 1技術(shù)|如何將Python3.6.9移植開發(fā)板

    如何進(jìn)行交叉編譯并移植ELF1開發(fā)板上。在網(wǎng)址:https://www.python.org/ftp/python/下載Python-3.6.9.tar.xz壓縮
    的頭像 發(fā)表于 02-22 14:06 ?910次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如何將Python3.6.9<b class='flag-5'>移植</b>到<b class='flag-5'>開發(fā)板</b>上

    ELF技術(shù)|如何在開發(fā)板上實(shí)現(xiàn)對(duì)Java的支持

    Java作為一種功能強(qiáng)大且廣泛應(yīng)用的編程語言,具有廣泛的適應(yīng)性和實(shí)用性。在ELF1開發(fā)板上集成Java支持,無疑將賦予嵌入式開發(fā)者更廣闊的選擇空間,今天就為各位小伙伴詳細(xì)解析如何在
    的頭像 發(fā)表于 03-13 16:47 ?973次閱讀
    <b class='flag-5'>ELF</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>開發(fā)板</b>上實(shí)現(xiàn)對(duì)Java的支持

    ElfBoard技術(shù)|在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的按鍵功能

    本次源碼適配工作是在NXPi.MX6ULLEVK評(píng)估的Linux內(nèi)核源碼(特定版本:Linux-imx_4.1.15)基礎(chǔ)上進(jìn)行的。主要目標(biāo)是調(diào)整功能接口引腳配置,以適應(yīng)ELF1開發(fā)板。接下來
    的頭像 發(fā)表于 07-10 09:54 ?1118次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>的按鍵功能

    ElfBoard技術(shù)|如何在ELF 1開發(fā)板上搭建流媒體服務(wù)器

    流媒體服務(wù)器是一種專門用于傳輸實(shí)時(shí)數(shù)據(jù)流的服務(wù)器軟件,廣泛用于視頻直播、視頻會(huì)議、音頻播放等應(yīng)用場(chǎng)景。在嵌入式開發(fā)領(lǐng)域,將流媒體服務(wù)器部署到開發(fā)板上可以實(shí)現(xiàn)諸如視頻監(jiān)控、實(shí)時(shí)數(shù)據(jù)傳輸?shù)裙δ?。本文將介紹如何利用nginx和其rtmp流媒體模塊,在
    的頭像 發(fā)表于 08-20 14:48 ?1137次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b><b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>上搭建流媒體服務(wù)器

    RK3506開發(fā)板QT Creator開發(fā)手冊(cè),交叉編譯工具鏈與QT應(yīng)用示例,入門必備

    本文基于觸覺智能RK3506核心/開發(fā)板介紹QTCreator交叉編譯配置與QT應(yīng)用示例。如需購買開發(fā)板進(jìn)行評(píng)估驗(yàn)證簡介QTCreator
    的頭像 發(fā)表于 09-30 16:26 ?2437次閱讀
    RK3506<b class='flag-5'>開發(fā)板</b><b class='flag-5'>QT</b> Creator<b class='flag-5'>開發(fā)</b>手冊(cè),<b class='flag-5'>交叉</b>編譯工具鏈與<b class='flag-5'>QT</b>應(yīng)用示例,入門必備