日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ARM QT移植詳細(xì)步驟教程

 XeonGate 2019-05-30
http://bbs.elecfans.com/jishu_459569_1_1.html
米爾SAM9X5和A5D3X上默認(rèn)的Qt版本是4.5.3,當(dāng)這個(gè)版本的Qt庫不能滿足實(shí)際開發(fā)需求時(shí),可通過此方法制定Qt開發(fā)、運(yùn)行環(huán)境。

移植的步驟如下:
1、下載新版qt;
2、編譯tslib;
3、編譯qt;
4、配置編譯后的qt,以便在主機(jī)上用qmake編譯適用目標(biāo)板的qt應(yīng)用;
5、拷貝lib文件到目標(biāo)板。

一、下載qt和tslib

比如要安裝4.8.5版本,則下載 qt-everywhere-opensource-src-4.8.5.tar.gz,
米爾百度云下載(建議!~):http://pan.baidu.com/s/1i3j5cyT
官網(wǎng)下載地址:http://download./archive/qt/。
還要下載tslib,
米爾百度云盤下載,地址(建議!~):http://pan.baidu.com/s/1fF8gI
官方下載地址:https://github.com/kergoth/tslib;

二、編譯tslib
1、 建立工作目錄
  1. $ cd ~$ sudo make /usr/local/tslib
  2. $ sudo make /usr/local/qt4.8.5-ARM
  3. $ mkdir qt-arm
  4. $ cd qt-arm
復(fù)制代碼


2、編譯安裝tslib
將下載的tslib源碼復(fù)制到工作目錄,并解壓:
  1. $ cp tslib-1.4.tar.gz ./
  2. $ tar xzvf  tslib1.4.tar.gz
  3. $ cd tslib
復(fù)制代碼


3、配置環(huán)境
先安裝automake、libtool 兩個(gè)工具:
  1. $ sudo apt-get install automake libtool
復(fù)制代碼
如果還沒有交叉編譯器的路徑添加到PATH,要先把該路徑添加到PATH中,本例使用的交叉編譯器的路徑為/opt/gcc-linaro-arm- inux-gnueabihf-4.7-2013.04-20130415_linux/bin(一定要指定自己目標(biāo)板的交叉編譯器路徑),則執(zhí)行以下命令:
  1. $ export PATH=$PATH:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-2010415_linux/bin
復(fù)制代碼


4、編譯
配置tslib,安裝路徑可以通過 --prefix 參數(shù)設(shè)置,這里安裝到/usr/local/tslib:
  1. $ ./autogen.sh
  2. $ ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --prefix=/usr/local/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes
復(fù)制代碼


編譯安裝:
  1. $ make
  2. $ sudo make install
復(fù)制代碼

完成后,tslib會按安裝到/usr/local/tslib目錄下。
進(jìn)入下一步之前,先將/usr/local/tslib/etc/ts.conf文件第二行“#module_raw input”注釋去掉,變?yōu)椤癿odule_raw input”,注意一定要頂格。

三、編譯安裝qt
1、解壓
  1. $ cd ~/qt-arm
  2. $ cp qt-everywhere-opensource-src-4.8.5.tar.bz2  ./
  3. $ tar xjvf qt-everywhere-opensource-src-4.8.5.tar.bz2
  4. $ cd qt-everywhere-opensource-src-4.8.5
復(fù)制代碼
2、指定交叉編譯器
打開解壓目錄下的mkspecs/qws/linux-arm-g++/qmake.conf:
  1. $ vi mkspecs/qws/linux-arm-g++/qmake.conf
復(fù)制代碼


用vi打開qmake.conf 后,將arm-linux-全部替換arm-linux-gnueabihf-(注意:根據(jù)自己板子而定,并且一定要先將交叉編譯器的路徑加入PATH變量中),并加上-lts,然后保存退出,更改后如下:
  1. # modifications to g++.conf
  2. QMAKE_CC                = arm-linux-gnueabihf-gcc -lts
  3. QMAKE_CXX               = arm-linux-gnueabihf-g++ -lts
  4. QMAKE_LINK              = arm-linux-gnueabihf-g++ -lts
  5. QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++ -lts
  6. # modifications to linux.conf
  7. QMAKE_AR                = arm-linux-gnueabihf-ar cqs
  8. QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
  9. QMAKE_STRIP             = arm-linux-gnueabihf-strip<font face="黑體"></font>
復(fù)制代碼


3、配置Qt
如下,先通過 --prefix 指定qt安裝的路徑,-I后面指定上一步tslib的include路徑,-L后面指定上一步tslib的lib路徑,

  1. $ sudo mkdir /usr/local/qt4.8.5-arm
  2. $ sudo ./configure --prefix=/usr/local/qt4.8.5-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/usr/local/tslib/include -L/usr/local/tslib/lib -confirm-license
復(fù)制代碼


可以執(zhí)行./configure --help查看參數(shù)的詳細(xì)說明,根據(jù)需要來配置合適的參數(shù)
如果配置的時(shí)候提示:

    The tslib functionality test failed!
    You might need to modify the include and library search paths by editing
    QMAKE_INCDIR and QMAKE_LIBDIR in
    /home/gary/qt/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-g++.





說明找不到合適的交叉編譯工具,請重新設(shè)置PATH環(huán)境變量。如果還是不能解決,再修改mkspecs/qws/linux-arm-g++/qmake.conf,將交叉編譯工具改為絕對路徑,如下:   
  1. # modifications to g++.conf
  2. QMAKE_CC                = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-gcc -lts
  3. QMAKE_CXX               = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
  4. QMAKE_LINK              = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
  5. QMAKE_LINK_SHLIB        = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts

  6. # modifications to linux.conf
  7. QMAKE_AR                = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-ar cqs
  8. QMAKE_OBJCOPY           = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-objcopy
  9. QMAKE_STRIP             = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-strip<font face="黑體"></font>
復(fù)制代碼


4、 編譯安裝  
  1. $ sudo make
  2. $ sudo make install
復(fù)制代碼

完成后,qt4.8.5即會安裝到主機(jī)/usr/local/qt4.8.5-arm目錄下。

四、配置編譯后的qt,以便在主機(jī)上用qmake編譯嵌入式qt應(yīng)用
1、設(shè)置環(huán)境變量
在主機(jī)(如Ubuntu)當(dāng)前終端下執(zhí)行以下命令:
   
  1. $ export PATH=$PATH:/usr/local/qt4.8.5-arm/bin
  2. $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/qt4.8.5-arm/lib
復(fù)制代碼

或?qū)⒁陨厦钐砑拥?etc/profile 文件中,這樣系統(tǒng)登錄時(shí)就自動(dòng)設(shè)置好這些環(huán)境變量。

五、移植Qt到開發(fā)板
開發(fā)板上要使用的東西就2個(gè),一個(gè)是編譯后的tslib,一個(gè)是編譯后qt目錄下的lib目錄。如下步驟將這兩個(gè)目錄拷貝到開發(fā)板上。
1、打包lib
我們Qt 安裝完成之后,為解決符號鏈接的問題,可以利用先打包,然后直接解壓到開發(fā)板的做法:   
  1. $ cd /usr/local/qt4.8.5-arm
  2. $ tar -zcf lib.tar.gz lib
  3. $ cd /usr/local
  4. $tar -zcf tslib.tar.gz tslib
復(fù)制代碼

將打包好的壓縮文件 lib.tar.gz 和 tslib.tar.gz 復(fù)制到開發(fā)板,然后解壓:
   
  1. mkdir -p /usr/local/qt4.8.5-arm
  2. tar xzvf lib.tar.gz -C /usr/local/qt4.8.5-arm
  3. tar xzvf tslib.tar.gz -C /usr/loacal
復(fù)制代碼

2、設(shè)置開發(fā)板上的環(huán)境變量
在目標(biāo)板上新建一個(gè)名為setqtenv的文件,
  1. vi setqtenv
復(fù)制代碼

并加入以下內(nèi)容:
  1. export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
  2. export QTDIR=/usr/local/qt4.8.5-arm
  3. export T_ROOT=/usr/local/tslib
  4. export PATH=$T_ROOT/bin:$PATH
  5. export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
  6. export TSLIB_CONSOLEDEVICE=none
  7. export TSLIB_FBDEVICE=/dev/fb0
  8. export TSLIB_TSDEVICE=/dev/input/event0
  9. export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
  10. export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
  11. export TSLIB_CALIBFILE=/etc/pointercal
  12. export QWS_KEYBOARD=USB:/dev/input/event1
  13. export QWS_MOUSE_PROTO=Tslib:/dev/ input/event0
  14. export QT_QWS_FONTDIR=$QTDIR/lib/fonts
復(fù)制代碼


執(zhí)行以下命令設(shè)置好qt環(huán)境變量的設(shè)置:
  1. source setqtenv
復(fù)制代碼



OK了,新版本的qt就可以使用了!

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多