一、準備好交叉編譯所需要的軟件包
(1)arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz(交叉編譯環境)
(2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源碼)
(3)qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系統是64位,所以選擇x86_64)
(4)tslib-1.4.tar.gz(觸摸屏校驗工具)
安裝包:
鏈接:https://pan.baidu.com/s/1h4dVleRGi8fV1lfMl2zoLg
提取碼:j33n
二、環境的搭建
2.1系統環境
主機操作系統:ubuntu14.04
主機編譯器:gcc4.8.4
交叉編譯器:arm-linux-gcc-4.5.1
2.2安裝交叉編譯器
(1)首先以root用戶登入
(2)複製arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz到tmp文件夾裏
(3)解壓tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C /
把arm-linux-gcc安裝到/opt/FriendlyARM/toolschain/4.5.1目錄
(4)配置下編譯環境路徑 在控制檯下輸入 gedit .bashrc,文件末尾加上
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
(5)輸入:source .bashrc
(6)命令行輸入arm-linux-gcc -v,出現以下界面安裝成成功
2.3安裝觸摸屏校驗工具
把tslib-1.4.tar.gz放到一個目錄下,比如/opt目錄下。接着執行命令如下:
#tar zxvf tslib-1.4.tar.gz
執行命令cd tslib,進入tslib當前目錄,接着執行命令如下:
#./autogen.sh
然後接着執行配置命令:
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
最後執行編譯命令和安裝命令如下:
1.make
2.make install
如果以上步驟沒錯,則可以在/usr/local/tslib下出現我們需要的庫文件,這些庫文件我們移植時會用到。
編譯期間出現的錯誤:./autogen.sh: 4: autoreconf: not found
解決辦法:sudo apt-get install autoconf automake libtool
2.4 安裝QtCreator
qt-creator-linux-x86_64-opensource-2.5.2.bin拷貝到Linux系統中,在終端中把路徑切換到qt-creator-linux-x86_64-opensource-2.5.2.bin所在的路徑。
運行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin 就會出現圖形安裝界面;下面的安裝步驟就和我們在windows下安裝軟件差不多。
注意:下的版本要和你的操作系統相匹配,32位的系統下對應32位的應用程序;
2.5 編譯Qt庫源碼
2.5.1解壓
將源碼qt-everywhere-opensource-src-4.8.5.tar.gz 進行解壓,並複製兩份到/usr/local目錄下,並分別命名爲qt-pc,qt-arm。
2.5.2 編譯PC版
進入qt-pc目錄,執行如下操作:
#./configure
#make
#make install
編譯過程中出現的問題:出錯:Basic XLibfunctionality test failed!
這個錯誤主要是因爲,XLib庫沒有安裝,所以在編譯X11平臺時,應該保證,
以下命令正確執行:sudo apt-get install libx11-dev libxext-dev libxtst-dev
注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然後再重新配置。
2.5.3編譯ARM版
進入qt-arm目錄,執行如下操作:
#vim /usr/local/qt-arm/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linu x-arm-g++/ qmake.conf
命令行輸入:
#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-pch -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
#make
#make install
安裝完成後,在/usr/local/Trolltech目錄中有兩個個文件夾:Qt-4.8.5、
QtEmbedded-4.8.5-arm。
QtCreator編譯前的配置
打開QtCreator ,工具---->選項—>構建和運行 進行設置,在Qt版本菜單下,手動設置選擇qmake路徑。
qmake路徑前有感嘆號
選擇Tool Chains點擊add添加GCC
構建項目
運行的時候
編譯成功後,查看下文件是否是ARM格式的,用file來查看
用SD卡或者tftp把編譯好的代碼拷貝到Tiny6410板子中
#cp /sdcard/ARMTEST /bin
#chmod +x /bin/ARMTEST
#ARMTEST -qws
即可運行
錯誤區:
1、 在開發板運行時出現類似錯誤:error while loading shared libraries:
libts-0.0.so.0: cannot open shared object file: No such file or directory
安裝QtEmbedded-4.8.5-arm目錄下,把.so文件都拷貝到開發板的/lib文件下
2、 編譯出錯:cc1: fatal error: .pch/release-shared-emb-arm/QtGui: No such file or directory 解決方案:
3、由於老的arm-linux-gnu工具鏈不支持64位,因此需要安裝32位庫
sudo apt-get instatll lsb-core