宿主機平臺:Ubuntu 12.04.4 LTSlinux
目標機:Easy-ARM IMX283git
目標機內核:Linux 2.6.35.3web
交叉編譯器:arm-linux-gcc 4.4.4sql
tslib 1.4 下載 https://gitlab.com/tslib/tslib/-/archive/1.4/tslib-1.4.tar.gz shell
qt-4.7.3 源碼下載 http://download.qt.io/archive/qt/4.7/qt-everywhere-opensource-src-4.7.3.tar.gz數據庫
詳細參照上節《tslib移植arm及使用》瀏覽器
./autogen.sh ./configure --prefix=/home/vmuser/workspace/vm_tools/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-fsl-linux-gnueabi-gcc make make install
1.編譯qt緩存
1)解壓:安全
tar xzvf qt-everywhere-opensource-src-4.7.3.tar.gz
cd qt-everywhere-opensource-src-4.7.3
2)編譯配置(裁剪QT)網絡
./configure -prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake -pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -no-largefile -no-accessibility -no-qt3support -no-webkit -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-libtiff -no-libmng -no-openssl -nomake examples -nomake docs -nomake demos -no-separate-debug-info -no-qvfb -no-cups -no-gtkstyle -no-xrender -no-glib -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput -qt-gfx-linuxfb -qt-gfx-transformed -D QT_QWS_CLIENTBLIT -I /home/vmuser/workspace/vm_tools/tslib/include -L /home/vmuser/workspace/vm_tools/tslib/lib
或編寫 shell 腳本
./configure \ -prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm \ -opensource -confirm-license -release -shared -embedded arm \ -xplatform qws/linux-arm-gnueabi-g++ \ -depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake \ -pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype \ -no-largefile -no-accessibility -no-qt3support -no-webkit \ -no-mmx -no-3dnow -no-sse -no-sse2 \ -no-libtiff -no-libmng -no-openssl \ -nomake examples -nomake docs -nomake demos \ -no-separate-debug-info -no-qvfb -no-cups \ -no-gtkstyle -no-xrender -no-glib \ -qt-mouse-pc -qt-mouse-linuxtp \ -qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput \ -qt-gfx-linuxfb -qt-gfx-transformed \ -D QT_QWS_CLIENTBLIT \ -I /home/vmuser/workspace/vm_tools/tslib/include \ -L /home/vmuser/workspace/vm_tools/tslib/lib
備註:最後3句是指定使用觸摸屏,並制定tslib1.4的安裝目錄的頭文件以及庫函數。
裁剪qt編譯配置詳解
編譯安裝配置:
-prefix <dir> qt 編譯安裝路徑(默認 /usr/local/Trolltech/Qt-4.7.3)
-opensource 編譯和連接qt的開源版本(商業版使用 -commercial )
-confirm-license
-release 編譯和連接qt時關閉調試功能
-shared 建立和使用qt共享庫(-static 建立和使用qt靜態庫)
-embeddedarm
-xplatform qws/linux-arm-gnueabi-g++ (使用arm下的編譯器進行編譯不然沒法在板子上運行)
-depths 4,8,16,18,24,32
-fast 經過只爲庫和子目錄目標生成makefile文件來快速配置qt,全部其餘生成文件都建立爲包裝器,運行qmake。(-no-fast 配置qt 爲全部工程文件生成makefile)
-little-endian (小端存儲)
-optimized-qmake (構建qmake優化)
如下爲加入的一些插件:
-pch (使用預編譯頭支持)
-qt-sql-sqlite (加入qt下的數據庫)
-qt-gif (默認支持gif圖片)
-qt-libjpeg ( jpeg圖片)
-qt-zlib (數據壓縮)
-qt-libpng (png形式的圖片)
-qt-freetype (FreeType庫是一個徹底免費(開源)的、高質量的且可移植的字體引擎)
-little-endian (小端存儲)
-host-little-endian (主機小端存儲)
去掉如下插件由於設計到ARM開發板是否支持的問題
-no-largefile 禁止大文件支持
-no-accessibility 不編譯輔助功能支持
-no-qt3support 禁止qt3支持功能
-no-libtiff (去掉讀寫標籤圖像文件格式的庫)
-no-libmng (製做一些動畫的庫)
-no-opengl (OpenGL是個專業的圖形程序接口,是一個功能強大,調用方便的底層圖形庫,此處不用它)
-no-webkit 不構建webkit模塊 (WebKit 是一個開源的瀏覽器引擎)(構建 -webkit)
-no-svg 不構建svg模塊 (構建 -svg)
-no-mmx 不使用mmx指令編譯(多媒體擴展用於圖形描繪)
-no-3dnow 不使用3dnow指令編譯(3Dnow指令集技術其實就是21條機器碼的擴展指令集)
-no-sse (SSE是指令集的簡稱,它包括70條指令,其中包含單指令多數據浮點計算、以及額外的SIMD整數和高速緩存控制指令)
-no-sse2 (SIMD 流技術擴展 2或數據流單指令多數據擴展指令集 2)指令集)
-no-openssl (爲網絡通訊提供安全及數據完整性的一種安全協議)
-no-qvfb ( Qvfb是爲qtopia作的一個虛擬frambuffer的應用程序,它的最終目的就是把qtopia應用程序運行的的結果顯示在qvfb上(實際中是要經過linux的frambuffer驅動顯示在lcd屏上的),並提供鍵盤、鼠標的外設仿真。從而方便研發階段,用戶在pc端就能夠完成qtopia的調試工做,極大的提升了工做效率。 )
-no-phonon (音頻播放的依賴庫裏面有不少直接能夠控制音頻播放的函數,作過播放器的人確定熟悉)
-no-nis (一種相似防火牆的工具網上說是諾頓網絡安全特警簡稱)
-no-cups (CUPS(Common UNIX Printing System)是Fedora Core3中支持的打印系統,它主要是使用IPP(Internet Printing Protocol)來管理打印工做及隊列)
-no-glib (用於GTK 開發環境)
-no-xcursor (不清處用途,應該是一種軟件依賴的文件)
-no-xfixes (XFixes is an X window system extension which makes useful additions to the X11 protocol)
-no-xrandr (窗口大小分辨率的調整)
-no-xrender
-no-separate-debug-info 不保存調試信息到單獨的.debug文件
-no-gtkstyle 不構建集成的GTK主題
-nomake examples 不生成例程代碼
-nomake tools 不生成工具
-nomake docs 不生成文檔
設置 tslib爲鼠標驅動、校訂
-qt-mouse-tslib
-I /home/vmuser/workspace/vm_tools/tslib/include
-L /home/vmuser/workspace/vm_tools/tslib/lib
修改源代碼
修改qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-g++/qmake.conf 文件(添加lts參數):
-lts 表示連接ts庫
3)make
4)make install