1. 程式人生 > >tslib-1.4移植 qt-4.8.5移植

tslib-1.4移植 qt-4.8.5移植

tslib移植

1.安裝需要的工具

sudo apt-get install automake

sudo apt-get install autogen

sudo apt-get install autoconf

sudo apt-get install libtool

2.下載tslib1.4.tar.gz,並解壓

tar zxvf tslib1.4.tar.gz

3.進入tslib目錄,執行指令碼:

./autogen.sh

4.配置:

./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/opt/tslib


5.編譯與安裝:

make 

make install

7.修改/opt/tslib/ts.conf配置檔案:

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

8.複製/opt/tslib所有檔案到開發板/opt/tslib

9.編輯開發板/etc/profile檔案,新增如下內容:

export TSLIB_ROOT=/opt/tslib

export TSLIB_TSDEVICE=/dev/input/event2

export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONSOLEDEVICE=/dev/tty

export TSLIB_FBDEVICE=/dev/fb0

export PATH=$PATH:/opt/tslib/bin

10.完成,重啟開發板,執行:

/opt/tslib/bin/ts_calibrate

螢幕出現校準的配置

出現的問題:

1.selected device is not a touchscreen I understand

解決:更改/etc/profile中的export TSLIB_TSDEVICE=/dev/input/event2,

將event2改為event0,event1等,試試

Qt移植

pc和arm可使用相同的原始碼包,使用不同的配置即可

arm版本Qt移植

1.下載並解壓原始碼包

tar zxvf qt-everywhere-opensource-src-4.8.5.tar.gz

2.配置(可先用./configure --help檢視可配置選項)

./configure -prefix /opt/qt-4.8.5-arm/ -shared -no-fast -no-largefile -no-exceptions -qt-sql-sqlite -qt3support -no-xmlpatterns -multimedia -no-svg -no-mmx -no-3dnow -no-sse -no-sse2 -qt-zlib -no-webkit -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-optimized-qmake -no-nis -no-cups -no-iconv -no-dbus -no-separate-debug-info -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -no-freetype -depths 4,8,16,32 -qt-gfx-linuxfb -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-tty -no-glib -armfpa -no-mouse-qvfb -qt-mouse-pc -qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib
註釋: -prefix /opt/qt-4.8.5-arm 為安裝目錄,編譯完後拷貝到開發板

3.編譯與安裝

make 
make install

4.複製/opt/qt-4.8.5-arm目錄到開發板/opt/qt-4.8.5:

cp -a /opt/qt-4.8.5-arm /nfsroot/opt/

5.配置開發板環境變數:

sudo vi /nfsroot/etc/profile 新增如下內容: export QTDIR=/opt/qt-4.8.5-arm 
export QTDIRlib=/opt/qt-4.8.5-arm/lib
export LD_LIBRARY_PATH=$QTDIRlib:$LD_LIBRARY_PATH 
export PATH=$QTDIR/bin:$PATH
export QWS_MOUSE_PROTO=tslib:/dev/input/event3
export QWS_DISPLAY="LinuxFb:mmWidth480:mmHeight272:0"  
export QT_QWS_FONTDIR=/opt/qt-4.8.5-arm/lib/fonts

PC版本Qt

1.下載並解壓原始碼包

tar zxvf qt-everywhere-opensource-src-4.8.5.tar.gz

2.配置

./configure -prefix /opt/qt-4.8.5-x11

3.編譯與安裝

make 
make install


Qt Creator

1.下載並安裝qtcreator

./qt-creator-opensource-linux-x86-3.0.1.run

2.配置qtcreator

*開啟qtcreator,在選單欄選擇Tools->Options,選擇Build & Run選項卡,選擇Compiler選項卡,選擇GCC(x86 32bit in /usr/bin),點右邊的Clone按鈕,複製一個選項作為交叉編譯器的選項,修改Clone出來的選項,修改如下: Name:GCC(arm 32bit)  Compiler path:/opt/4.4.1/bin/arm-linux-g++(根據具體路徑設定) ABI:arm-linux *選擇Debugger選項卡,選擇System GDB at /usr/bin/gdb,點Clone,修改Clone出來的選項,修改如下: Name:GDB (arm 32bit) Path: /opt/4.4.1/bin/arm-linux-gdb(根據具體路徑設定) *選擇Qt Version選項卡,點Add,新增/opt/qt-4.8.5-arm/bin/qmake *選擇Kits選項卡,選擇Destop,點Clone,修改Clone出來的選項,修改如下: Name: Arm Device type:Generic Linux Device Device: Sysroot: Compiler: GCC(arm 32bit)  Debugger: GDB (arm 32bit) Qt version:Qt4.8.5 (qt-4.8.5-arm) (會有No device警告,不鳥它) PC端編譯器按以上過程配置

3.測試

開啟Qt,新建工程,輸入名字和路徑 在Kit Selection時,把兩個Kit都選上, 下一步,下一步,完成 隨便畫個視窗 點選左下角Debug按鈕,切換編譯器,想怎麼切,就怎麼切 在工程目錄的Debug目錄下,把可執行檔案,複製到開發板執行即可 PC端直接點執行 ./Test -qws(記得加上-qws)
移植完成:^.^

問題:

1. error while loading shared libraries: libstdc++.so.6: cannot open shared object file 解決:到交叉編譯器的庫裡找到相應的庫,複製到開發板 cp -a /opt/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so /nfsroot/lib/ cp -a /opt/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6 /nfsroot/lib/ cp -a /opt/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 /nfsroot/lib/