搭建Linux-QT 開發環境,須要先搭建Android 的編譯環境,而後在Android 編譯環境的基礎上,再搭建Linux-QT 編譯環境。linux
第一:編譯器。android
第二:設置環境變量。環境變量設置後,編譯的時候,系統才能找到編譯器。vim
第三:庫文件。搭建過程當中會給經過執行簡單的腳本命令來安裝庫文件,複雜的步驟變的簡單有效。bash
第四:源碼。編輯器
使用的是「搭建好的Ubuntu 鏡像」,只須要改一下環境變量,系統裏面的工具和庫文件以前都已經安裝完畢了。工具
1 uboot 的編譯測試
Linux-QT 系統中Uboot 和Android4.0.3 的Uboot 源碼是通用的,編譯環境和編譯方法也同樣。ui
2 Linux 內核的編譯spa
Linux-QT 系統中Linux 內核和Android4.0.3 中的Linux 內核源碼是同樣的,編譯環境和編譯方法也同樣。僅僅是編譯的時候使用的配置文件".config "不同。解壓出來內核源碼文件夾」iTop4412_Kernel_3.0「。而後須要用QT 內核的配置文件「config_for_linux」將Android4.0.3 內核的配置文件".config" 覆蓋,覆蓋後就能夠編譯QT 的內核。具體操做以下:命令行
在Ubuntu 命令行中,執行下面命令:
cp config_for_linux .config
make
執行編譯完命令後,在文件夾「iTop4412_Kernel_3.0」 --> 「arch」-->「arm」-->「boot」下會生成的「zImage」文件,「zImage」文件就是可供下載的內核文件。用戶若是想恢復爲Android4.0.3 的Linux 內核,在內核源碼文件夾中,使用文件「config_for_android」覆蓋「.config」文件就能夠了。具體操做以下:
在Ubuntu 命令行中,執行下面命令:
cp config_for_android .config
3 Linux-QT 編譯的環境以及編譯
3.1 編譯器和基本庫文件的安裝
QT 文件系統的編譯器和Android4.0.3 的編譯器不同,QT 的編譯器包含在壓縮包「arm-linux-4.4.1.tar.g」中,將壓縮包拷貝到Ubuntu 系統下,接着將壓縮包解壓到Ubuntu 系統的文件夾「usr」-->「local」-->「arm」下,解壓生成文件夾「4.4.1」。而後安裝X11 的SDK 庫,具體操做以下:
在Ubuntu 命令行中,執行下面命令:
apt-get install libx11-dev libxext-dev libxtst-dev
接着修改環境變量,修改環境變量,具體操做以下:
在Ubuntu 命令行中,執行下面命令:
cd
vim .bashrc
使用vim 編輯器打開環境變量文件「.bashrc」後,修改QT 編譯器的路徑,添加下面的內容到文件「.bashrc」的最後一行。export PATH=$PATH:/usr/local/arm/4.4.1/bin在環境變量文件中,還有編譯Android4.0.3 使用的編譯器的路徑,這個路徑用#註釋掉就能夠,以下圖:
修改完成後保存退出「.bashrc」文件。更新一下環境變量,在Ubuntu 命令行中,執行下面命令:
source .bashrc
測試編譯器是否正確安裝,在Ubuntu 命令行中,執行下面命令:
arm-none-linux-gnueabi-gcc -v
能夠看到系統顯示arm-gcc 編譯器的版本爲「gcc version 4.4.1」。在前面搭建Android4.0.3 編譯環境的時候,有一步操做「下降gcc 版本」,可是前面那個「gcc」是x86 的編譯器(經過命令#gcc -v 能夠查看其版本)。這裏用到的「gcc」編譯器是arm 編譯器,所以它們是兩個徹底不一樣的編譯器。
3.2 QT 源文件和補丁文件
在Ubuntu 環境中,「root」目錄下新建文件夾「yizhi」,具體操做以下,在Ubuntu 命令行中,執行下面命令:
cd /root
mkdir yizhi
接着將壓縮包「ARM-qtopia-free-src-2.2.0.tar.gz」拷貝到前面新建的「yizhi」文件夾中,解壓壓縮包後獲得源碼文件「qtopia-free-src-2.2.0.tar.gz」和文件「build」。拷貝壓縮包「tslib.tar.gz」到Ubuntu 系統下,而後解壓到Ubuntu 系統的「usr」-->「local」文件夾下,解壓後生成的文件夾「tslib」。
3.3 庫文件和編譯QT
編譯QT 文件還須要一些額外的6 個庫文件,這6 個庫文件所有在用戶光盤「linux」-->「patch」文件夾下。這六個庫文件分別是:libXext.so.6.4.0, libXmu.so.6.2.0,libSM.so.6.0.1, libICE.so.6.3.0, libXt.so.6.0.0, libuuid.so.1.3.0其中的5 個庫文件,包括「libXext.so.6.4.0「、」libXmu.so.6.2.0「、」libSM.so.6.0.1「、」libICE.so.6.3.0「、」libXt.so.6.0.0」,所有拷貝到Ubuntu 系統的文件夾「usr」
-->「lib32」下。而後建立連接文件,具體操做以下,進入Ubuntu 系統的文件夾「usr」-->「lib32」下,而後在Ubuntu 命令行中,執行下面的命令:
ln -s libXext.so.6.4.0 libXext.so.6
建立連接文件libXext.so.6
ln -s libXext.so.6 libXext.so
建立連接文件libXext.so
ln -s libXmu.so.6.2.0 libXmu.so.6
建立連接文件libXmu.so.6
ln -s libXmu.so.6 libXmu.so
建立連接文件libXmu.so
ln -s libSM.so.6.0.1 libSM.so.6
建立連接文件libSM.so.6
ln -s libSM.so.6 libSM.so
建立連接文件libSM.so
ln -s libICE.so.6.3.0 libICE.so.6
建立連接文件libICE.so.6
ln -s libICE.so.6 libICE.so
建立連接文件libICE.so
ln -s libXt.so.6.0.0 libXt.so.6
建立連接文件libXt.so.6
ln -s libXt.so.6 libXt.so
建立連接文件libXt.so
拷貝剩下的文件「libuuid.so.1.3.0」到Ubuntu 系統的「lib32」文件夾下,而後在Ubuntu命令行中,執行下面的命令:
ln -s libuuid.so.1.3.0 libuuid.so.1
建立連接文件libuuid.so.1
ln -s libuuid.so.1 libuuid.so
建立連接文件libuuid.so
庫文件所有處理完成後,接着就能夠編譯QT 源碼了,具體操做以下,在Ubuntu 命令行中,執行下面的命令:
cd /root/yizhi
./build
編譯QT 源文件是一個比較漫長的過程。編譯完成後會在Ubuntu 系統文件夾「root」-->「yizhi」下生成文件夾「qtopia-free-2.2.0」,這個文件夾就是編譯好的QT 文件。在編譯好的Qt 文件夾下,咱們須要接着處理一下字庫文件。具體操做以下,在Ubuntu 命令行中,執行下面的命令:
cp -r /root/yizhi/qtopia-free-2.2.0/qt2/lib/fonts/helvetica*/root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia/lib/fonts/而後咱們把文件夾"Qtopia"拷貝到Ubuntu 系統的opt 文件夾下,具體操做以下,在Ubuntu 命令行中,執行下面的命令:
cp -r /root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia /opt
3.4 第三方庫文件
上面編譯的時候用到了第三方庫文件「3rdpart-lib-for-Qtopia2.2.0.tar.gz」。因爲這個庫文件直接包含在提供的編譯器壓縮包「arm-linux-4.4.1.tar.gz」中,在前面解壓編譯器壓縮包的時候,庫文件就已經直接解壓到Ubuntu 系統中了,因此在編譯QT 的時候,用戶不用進行額外的處理就能夠直接編譯生成QT 文件系統。
3.5 生成system.img
生成能夠下載的system.img 文件須要工具「mkimage」,這個工具在用戶光盤「tools」文件夾下的壓縮包「linux_tools.tgz」。拷貝壓縮包到Ubuntu 系統的「/」目錄下,注意是「/」,而後將壓縮包解壓。在Ubuntu 的用戶目錄"topeet"下面,新建一個「Linux+QT」文件夾。拷貝壓縮包「root.tar.gz」到新建的「Linux+QT」文件夾下,而後解壓,解壓後會生成文件夾「root」。而後把前面編譯生成的文件夾「Qtopia」拷貝到解壓出來的「opt」文件夾中,具體操做以下,在Ubuntu 命令行中,執行下面的命令:
cp -r /root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia/home/topeet/Linux+QT/root/opt
紅色的topeet 是用戶文件夾,若是本身搭建環境,則須要替換成本身設置的用戶名。
在執行上面的操做後,最後執行生成二進制文件的命令,在Ubuntu 命令行中,執行下面
命令:
cd /home/topeet/Linux+QT
make_ext4fs -s -l 314572800 -a root -L linux system.img root
執行這一步後,在「Linux+QT」文件夾中就生成了「system.img」文件。最後QT 系統還須要一個鏡像文件「ramdisk-uboot.img」,這個鏡像文件是通用的,能夠直接用編譯好的鏡像。
到這一步,Linux-QT 須要的所有鏡像就都已經制做完成。