久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5269|回復: 0
打印 上一主題 下一主題
收起左側

移植qt-4.8.5至 mini2440建立交叉編譯及qt運行環境

[復制鏈接]
跳轉到指定樓層
樓主
ID:3721 發表于 2015-1-5 15:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
移植參考了網上流傳的許多相關文檔,感謝。

軟硬件環境: ubuntu10.04 32bit          arm-linux-gcc-4.4.3          mini2440


1  下載tslib-1.4.tar.gz 觸摸屏庫文件包
     解壓: tar -xvzf tslib-1.4.tar.gz
     進入解壓后得到的tslib文件夾: cd tslib
     配置: ./configure --prefix=/opt/tslib/  --host=arm-linux  ac_cv_func_malloc_0_nonull=yes
     arm-linux-gcc編譯tslib安裝在/opt/tslib下: make&&make install


2. 下載Qt libraries 4.8.5 for embedded Linux (230 MB) (Info)
   解壓: tar xvzf qt-everywhere-opensource-src-4.8.5.tar.gz 我將解壓后的文件夾重命名為:qt-4.8.5-arm
   cd qt-4.8.5-arm
   ./configure
      可以看到許多配置qt功能及特征的選項,參考別人的配置,配置如下:
./configure -prefix /usr/local/Trolltech/Qt-4.8.5-arm -release -shared -fast -opensource -no-3dnow -no-openssl -no-libmng -no-opengl -no-qvfb -no-glib -no-phonon  -nomake examples -nomake tools -nomake docs -nomake demos -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-mouse-tslib -xplatform qws/linux-arm-g++ -embedded arm -little-endian -depths 16 -confirm-license -I/opt/tslib/include -L/opt/tslib/lib
其中-no-xxx表示配置qt不支持xxx, 而-qt-xxx表示qt支持xxx, 這里制定了qt的安裝路徑/usr/local/Trolltech/Qt-4.8.5-arm, qt目標架構arm,編譯平臺linux-arm-g++,那個qws我不清楚其意義,記得要配置qt支持觸屏:-qt-mouse-tslib,指定tslib的頭文件路徑:I/opt/tslib/include 和鏈接庫路徑-L/opt/tslib/lib即第1步安裝的tslib
   make
    這里編譯花了不少時間,且最開始未能成功,因那次我下載編譯的是Qt libraries 4.8.5 for Linux/X11 (230 MB) (Info),而不是qt嵌入式linux庫,我有意試一下,發現前一種不行。
  make install
    將qt庫安裝到/usr/local/Trolltech/Qt-4.8.5


3.把以上arm-linux-gcc編譯的庫拷貝到開發板系統的根文件系統下,pc上開發板的根文件系統路徑是/nfsroot
  mkdir /nfsroot/opt/tslib
  cp /opt/tslib/*  /nfsroot/opt/tslib/

  mkdir /nfsroot/usr/local/Trolltech/ -p
  tar czvf Qt-4.8.5.tar.gz  Qt-4.8.5-arm
  在/usr/local/Trolltech下,我把pc下安裝的qt庫打包到/nfsroot/usr/local/Trolltech,即mini2440的根文件系統中,解壓
  tar xvzf Qt-4.8.5.tar.gz
  得Qt-4.8.5-arm

4.在/nfsroot/etc/下建立 profile 制定qt和tslib運行的環境
  vim profile
  內容如下 :
  #!bin/sh
  export TSLIB_ROOT=/opt/tslib
  exprot TSLIB_TSDEVICE=/dev/event0
  export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
  export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
  export TSLIB_CALIBFILE=/etc/pointeral
  export TSLIB_FBDEVICE=/dev/fb0
  export QWS_MOUSE_PROTO=tslib:/dev/event0
  export QWS_SIZE=320*240
  export QTDIR=/usr/local/Trolltech/Qt-4.8.5-arm
  export QT_QWS_FONTDIR=$QTDIR/lib/fonts
  export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
    以上的配置需根據自己的情況來,根文件系統中tslib,qt的安裝目錄,觸摸屏,LCD在 /dev下的表示,窗口size,


  修改tslib的配置文件ts.conf
  vim ts.conf
  module_raw input
   將上面這條配置前的#去掉使之生效,讓tslib可以用linux中input上報事件的接口
  module pthres pmin=1
     pthres為tslib提供觸摸屏靈敏度門檻插件
   module variance delta=30
     variance為tslib提供觸摸屏濾波算法插件
   module dejitter delta=100
     dejitter為tslib提供去噪算法插件 module linear// linear為tslib提供坐標變換插件

5.打開SecureCRT,啟動mini2440,掛載根文件系統后,在mini2440系統終端測試
  cd /opt/tslib/bin
     進入tslib在根文件系統中的安裝目錄下的bin文件夾
  ./ts_calibrate
     首先運行ts_calibrate校準屏幕
  ./ts_test
     運行測試

  在運行tslib/bin下的程序時出錯,看報錯:error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file
    是在指定的庫路徑下找不到libdl.so.2庫, 在網上發現一個方法,到交叉編譯工具鏈的庫文件夾去找找
     cd  /usr/local/arm/4.4.3
     find ./ -name libdl.s0.2
     ./arm-none-linux-gnueabi/sys-root/lib/libdl.so.2
     cd arm-none-linux-gnueabi/sys-root/lib/
     cp libdl.so.2  /nfsroot/usr/local/Trolltech/Qt-4.8.5-arm/lib/
     把該庫文件拷到根文件系統qt的庫文件夾下吧

6.pc交叉編譯幾個qt程序例子,拷入根文件系統,在板子上運行
  cd /usr/local/Trolltech
    進入qt在pc上的安裝目錄
  vim setenv-embedded.sh
  #!bash shell
  PATH=/usr/local/Trolltech/Qt-4.8.5-arm/bin:$PATH
  QTDIR=/usr/local/Trolltech/Qt-4.8.5-arm
  MAINPATH=$QTDIR/man:$MAINPATH
  LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    pc上安裝了qt庫,通過上面的腳本為qt應用程序在pc上的編譯配置環境,如告知鏈接qt庫的路徑

cd /opt/qt-4.8.5-arm
   進入pc上qt包解壓后得到的qt源碼包文件夾
cd examples/mainwindows/application
   進入qt源碼包提供的主窗口例子下的application目錄
qmake
   生成Makefile
make
   編譯得到application
cp application /nfsroot/usr/test
   將application拷貝至根文件系統/nfsroot/usr/test/下
啟動mini2440,在其終端進入/usr/test目錄,運行application
./application -qws
  若運行出錯說缺少xxx庫文件,到交叉編譯工具鏈下的arm-none-linux-gnueabi/sys-root/lib/目錄下找到該庫文件,將其拷貝至根文件系統         中/usr/local/lib/目錄下。之前在根文件系統/etc/profile中配置mini2440下qt程序運行環境時指定了庫文件的目錄,包括/usr/local/lib。

7.實現在啟動mini2440進入系統后屏幕校準
  cp /nfsroot/opt/tslib/bin/ts_calibrate /nfsroot/usr/bin/
    將校準程序ts_calibrate拷貝至標準執行庫
  chmod 777 /nfsroot/usr/bin/ts_calibrate
  vim nfsroot/etc/profile
    系統啟動會執行/etc/profile中指定行為,在最后一行添加ts_calibrate

如有誤,望指正。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产v日韩v亚洲 | 久久国产日韩欧美 | 99久久99久久精品国产片果冰 | 国产人久久人人人人爽 | 福利一区视频 | 国产成人自拍一区 | 日韩在线欧美 | 午夜婷婷激情 | 午夜天堂 | 99成人| 毛片一级片| 日韩高清成人 | 国产精品99久久久久久久vr | 中文字幕视频在线看5 | 国产福利一区二区 | 一区在线观看视频 | 成人免费视频久久 | 欧美日韩综合一区 | 久久久精彩视频 | 天天操天天操 | 久久99精品久久久久久秒播九色 | 国产成人jvid在线播放 | 亚洲视频在线播放 | 日本黄视频在线观看 | 99精品99久久久久久宅男 | 精品美女久久久久久免费 | 国产成人在线一区 | 91精品国产综合久久婷婷香蕉 | 国产一区二区三区免费观看在线 | 日本成人三级电影 | 欧洲一区在线观看 | 色播99 | 久久国产精品-国产精品 | 欧美4p| 亚洲精品一区二区冲田杏梨 | 岛国av免费观看 | 久久99精品久久久久久青青日本 | 99国内精品久久久久久久 | 国产精品毛片久久久久久久 | 欧州一区| 九一在线 |