[Qt開發指南]飛凌嵌入式iMX6開發板QT移植

虛擬機環境: ubuntu12.04 32bit /64bithtml

目標平臺: i.MX6  開發板linux

交叉編譯工具鏈: gcc gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12git

文件系統:  飛凌嵌入式 提供的 rootfsshell

飛凌iMX6DL.jpg

注意:編程

1 飛凌嵌入式 iMX6開發平臺 發佈資料裏面提供編譯好的 Qt  庫和開發工具  qt4.8.5-sdk.tar.bz2, tslib-sdk.tar.bz2 ,若是您進行 Qt  應用程序的開發能夠不 用編譯 Qt ,直接跳到 1.4  節,進行應用程序的開發。ubuntu

 發佈的 Linux  文件系統中默認含有 Qt  庫,能夠直接運行 Qt  應用程序, Qt  版本: Qt4.8.5 app

 

1.1.1  安裝交叉編譯器ide

拷貝 tools  目錄下的  gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz工具

   //work/imx6  目錄下面開發工具

root@forlinx:/work/imx6/qt4.8.5# tar xvf gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz  -C /usr/local/arm

 

注意:本操做是在 32bit ubuntu12.04 運行。若是在 64bit ubuntu12.04 下運行 32bit 可執行程序,必須執行  sudo apt-get install ia32-libs libc6-i386 , 安裝在 64bit ubuntu12.04   32bit 程序的運行庫。

 

root@forlinx:/work/imx6/qt4.8.5#/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-gcc -v

 

f_3b2f70854ef53eb9f082361116eea598&t=png&o=&s=&v=1583114917

 

1.1.2  設置交叉編譯器環境變量

# gedit /etc/profile

在文件的末尾添加以下環境變量 :

export PATH=  root@forlinx:/work/imx6/qt4.8.5#/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin:$PATH

export TOOLCHAIN=  /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain

export TB_CC_PREFIX=arm-none-linux-gnueabiexport

PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi

以下圖所示 :

f_f6e301850b4c4917da9290c53f1dc829&t=png&o=&s=&v=1583114926

 

1.1.3  導入環境變量

# source /etc/profile

# arm-linux-gcc -v

以下圖所示則說明添加編譯器成功:

f_dcfc6df1fa8341b9033d7516eb1b7992&t=png&o=&s=&v=1583114934

 

1.2  移植 tslib

tslib  是電阻式觸摸屏用於校準的一個軟件庫,是一個開源的程序,可以爲觸摸屏驅動得到的採樣提供

諸如濾波、去抖、校準等功能,一般做爲觸摸屏驅動的適配層,爲上層的應用提供了一個統一的接口。因

此這裏先編譯安裝 tslib ,這樣在後面編譯 Qt  的時候才能打包編譯進去

1.2.1  安裝 autoconf  automake  libtool 

# sudo apt-get install autoconf #tslib  依賴

# sudo apt-get install automake #tslib  依賴

# sudo apt-get install libtool #tslib  依賴

# sudo apt-get install g++ #tslib  依賴

# sudo apt-get install libc6-dev:i386  #qt4.8.5 依賴

#sudo apt-get install build-essential  #qt4.8.5 依賴

#sudo apt-get install gcc-multilib  #qt4.8.5 依賴

1.2.2  拷貝壓縮文件

拷貝 src  目錄下 tslib-1.4-src.tar.bz2  的到 /work/imx6 (推薦)目錄下面

# tar -xvf tslib-1.4-src.git.tar.bz2

# cd tslib

# ./tslib.sh # 飛凌提供的編譯腳本,執行完會將 tslib  默認安裝到 /usr/local/arm/tslib

1.2.3  移植 tslib  i.MX6 目標板

假設用戶的根文件系統路徑爲:  /work/imx6/rootfs

執行如下命令:

# cd /usr/local/arm/tslib

# cp -ar lib/* /work/imx6/rootfs /usr/lib

# cp -ar bin/*/work/imx6/rootfs/usr/bin

# vi etc/ts.conf # 去掉 module_raw input  前註釋符 #, 必定要注意中間的空格也去掉, module  頂格

# cp -ar etc/* /work/imx6/rootfs /etc

1.2.4  導出 tslib 環境變量

# cd  /work/imx6/rootfs

# vi etc/rc.d/qt_env.sh

添加如下環境變量

export TSLIB_TSDEVICE=/dev/input/touchscreen0

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_PLUGINDIR=/usr/lib/ts

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

< tslib  環境變量說明:

TSLIB_CONFFILE // 配置文件名

TSLIB_PLUGINDIR // 插件目錄

POINTERCAL_FILE :  // 指定包含用於校準指針設備的數據的文件

TSLIB_TSDEVICE // 觸摸屏設備文件名

TSLIB_CALIBFILE // 校準的數據文件,由 ts_calibrate  校準程序生成

TSLIB_CONSOLEDEVICE // 控制檯設備文件名

TSLIB_FBDEVICE // 設備名

以上環境變量在實際開發中的實際配置能夠根據實際狀況決定。而這些指定的設備節點必定要和你的

開發板上的 /dev  目錄下的設備節點相對應。

1.2.5   i.MX6q 目標板下測試 tslib

用新文件系統啓動 i.MX6q  板子,進入 shell  後執行以下命令:

#source /etc/rc.d/qt_env.sh

# ts_calibrate  對電阻屏進行觸摸較驗

# ts_test  對電阻屏進行觸摸測試

 

1.3  移植QT 4.8.5

1.3.1  拷貝壓縮文件

拷貝 src  目錄下的 qt-everywhere-opensource-src-4.8.5.tar.gz   /work/imx6  目錄下面  , 請注意,

咱們對 Qt  源碼進行了必要的配置,默認配置路徑就是   /work/imx6 , 若是您的 Ubuntu  裏面沒有該路

徑請執行以下命令建立  」/work/imx6」  路徑:

#mkdir /work/imx6

執行如下命令解壓 Qt  源碼文件夾 :

# tar xvfj qt-everywhere-opensource-src-4.8.5.tar.gz

#tar xvfj linux-imx6-g++.tar.bz2

#cp –fr linux-imx6-g++ qt-everywhere-opensource-src-4.8.5/mkspecs/qws/ linux-imx6-g++

#cp qteverywhere.sh qt-everywhere-opensource-src-4.8.5/

# cd qt-everywhere-opensource-src-4.8.5

#export PATH=$PATH: /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/

修改 qt-everywhere-opensource-src-4.8.5/ mkspecs/common/linux.conf,pthread 後面添加 -lts

#make confclean

#make clean

# ./qteverywhere.sh ## 飛凌提供的編譯腳本,執行完會將 qt  默認安裝到 /usr/local/arm/qt4.8.5

#make

#mkdir –p /usr/local/freescale/qt4.8.5

#make install

#/usr/local/freescale/qt4.8.5/bin/qmake –v # 查看是否按照成功

以下圖所示則說明添加qt庫編譯器成功

f_1844a92304d4854f233674ee47ffc43e&t=png&o=&s=&v=1583114943

1.3.3  移植 qt4.8.5   i.MX6  目標板

# cd /usr/local/freescale/qt4.8.5/

# cp -ar lib/libQt* lib/fonts/ /work/imx6/rootfs/opt/forlinx_qt4.8/lib

# cp -ar demos/embeddeddialogs/embeddeddialogs  /work/imx6/rootfs/opt/forlinx_qt4.8/bin

注:若 opt/forlinx_qt4.8 {lib,bin} 目錄不存在能夠本身建立,也能夠是其餘目錄

1.3.4  導出 qt 環境變量

# cd /work/imx6/rootfs

# vi etc/rc.d/qt_env.sh# 添加如下環境變量

 

export QTDIR=/opt/qt4.8.5

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QT_PLUGIN_PATH=$QTDIR/plugins

export QT_QWS_FONTDIR=$QTDIR/lib/fonts

 

export QWS_MOUSE_PROTO=tslib:/dev/input/event2

export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"

export QWS_SIZE=800x480

 

Qt  環境變量說明:

LD_LIBRARY_PATH :指定 qt  的共享庫具體路徑

QT_QWS_FONTDIR :指定 qt   font  具體路徑

QWS_SIZE :設定在屏幕尺寸

QWS_DISPLAY :指定的顯示類型和幀緩衝區

QWS_MOUSE_PROTO :指定觸摸設備

以上環境變量在實際開發中的實際配置能夠根據實際狀況決定。而這些指定的設備節點必定要和你的開發

板上的 /dev  目錄下的設備節點相對應。

開機自動啓動程序放在 /etc/rc.d/apps.sh

內容以下:

#!/bin/sh

#apps

cd /opt/qt4.8.5/demos/embedded/fluidlauncher

./fluidlauncher -qws &

#apps

手動運行程序

#source /etc/rc.d/qt_env.sh

cd /opt/qt4.8.5/demos/embedded/fluidlauncher

./fluidlauncher -qws &

 

1.3.5 i.MX6  目標板下測試 QT4.8.5

用新移植的文件系統啓動開發板,進入 shell  後執行以下命令:

# cd / opt/forlinx_qt4.8/bin/

# ./embeddeddialogs -qws&

注意:若是想讓界面豎屏顯示,只需添加 -display "Transformed:Rot90" 參數便可。

以下圖所示:

1.jpg 

 

1.4 Qt Creator 開發環境搭建及編程

1.4.1  安裝 Qt Creator2.4.1

 Ubuntu 圖形gui安裝

2.jpg

 Ubuntu  命令行執行以下命令:

#apt-get install qtcreator

安裝完成後在終端輸入如下命令,開啓 Qt Creator

#qtcreator&

3.jpg

1.4.2  設置 Qt Creator  使其支持交叉編譯

點擊 Qt Creator   Tools  菜單下的 Options ,點擊左列  Build & Run ,而後點擊界面右側的 Tools Chains

標籤頁, 而後點擊 Add  添加 GCCE,  單擊 Compiler path Browse  添加交叉編譯器

(/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-g++) 的路徑,以下圖所示:

4.jpg

 

 

Qt Creator Versions  的設置

點擊 Add  添加 /usr/local/freescale/qt4.8.5/bin/qmake  文件 ( 咱們提供的 qt4.8.5-sdk.tar.bz  含有 qmake  文件,把

qt4.8.5-sdk.tar.bz  壓縮包釋放到 /usr/local/ freescale  目錄便可 ) ,添加進去,以後,點擊 Apply  即配置完成。

5.jpg

1.4.3  新建 hello Qt 程序進行測試

建立一個 Qt Widget Project  項目,以下圖:

6.jpg

輸入項目名稱和項目路徑,以下圖:

7.jpg

選擇 Manually  版本(就是咱們剛纔添加的那個交叉編譯器版本,必定要選對)

8.jpg

剩下的步驟默認就好,而後就能夠經過 Build->Build All  進行編譯,以下圖:

9.jpg

1.4.4  在開發板上測試 qt  應用程序

10.jpg

注:因爲 qt  字體庫裏已包含一箇中文字體,故直接能夠在程序中使用中文,無需額外操做


原文連接:https://www.forlinx.com/article_view_154.html

相關文章
相關標籤/搜索