QT 4.7.3 交叉編譯環境搭建

測試平臺

宿主機平臺: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數據庫

1. tslib移植

詳細參照上節《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

2. QT源碼編譯與安裝

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

相關文章
相關標籤/搜索