本文轉自迅為4412開(kāi)發(fā)板實(shí)戰教程書(shū)籍:http://www.topeetboard.com 迅為是基于Ubuntu12.04.2平臺做開(kāi)發(fā),所有的配置和編譯腳本也是基于此平臺,沒(méi)有在其它平臺上測試過(guò)。如果你對Linux和Android開(kāi)發(fā)很熟悉,相信你會(huì )根據錯誤提示逐步找到原因并解決,錯誤提示一般是選用的平臺缺少了某些庫文件或者工具等原因造成的;建議初學(xué)者使用和迅為一致的平臺。 Uboot、Kernel以及Android等的編譯環(huán)境看似復雜,其實(shí)只需要抓住以下四個(gè)要點(diǎn)。 (1)Uboot、Kernel編譯器的安裝。編譯器在光盤(pán)中都有提供,在需要使用的步驟中,會(huì )說(shuō)明編譯器在光盤(pán)中的位置。 (2)設置環(huán)境變量。Uboot、Kernel、QtE、Qtopia編譯器的環(huán)境變量設置后,編譯的時(shí)候,系統才能找到編譯器。 (3)Android文件系統的編譯器。編譯器需要使用Ubuntu系統自帶的gcc編譯器,但是版本不對,所以需要降低版本。迅為將這個(gè)過(guò)程編寫(xiě)了成幾個(gè)簡(jiǎn)單的命令,用戶(hù)只需要挨個(gè)執行命令即可。 (4)庫文件。搭建過(guò)程中會(huì )給通過(guò)執行簡(jiǎn)單的腳本命令來(lái)安裝庫文件,復雜的步驟變的簡(jiǎn)單有效。 另外,如果用戶(hù)想了解編譯環(huán)境具體是怎么搭建起來(lái)的,可以利用提供的腳本文件和命令來(lái)學(xué)習。 1. 使用搭建好的編譯環(huán)境 兩種搭建編譯環(huán)境的方式,一種方法是用戶(hù)安裝虛擬機,然后安裝基礎的Ubuntu12.04.2系統,利用迅為提供工具和詳細的使用步驟,搭建編譯環(huán)境;另外一種方法是用戶(hù)安裝虛擬機,然后直接加載“搭建好的Ubuntu鏡像”,用戶(hù)只需要修改一下編譯器的環(huán)境變量,就可以直接用來(lái)編譯源碼。 以下詳細講解如何搭建編譯環(huán)境。 需要注意的是,搭建過(guò)程中用到的各類(lèi)軟件,都需要和手冊提到的版本保持一致,如果使用的是“搭建好的鏡像”,則可以跳過(guò)這一節,但是編譯的時(shí)候要針對性的設置一下環(huán)境變量。 2.安裝基本軟件 Ubuntu系統需要一些基礎軟件,便于后續使用。 (1)安裝虛擬機“Vmware_Workstaion_wm” (2)然后使用虛擬機安裝“Ubuntu12.04.2初始系統”。 (3)安裝完成后進(jìn)入Ubuntu的終端,激活root用戶(hù); (4)接著(zhù)登錄root用戶(hù); (5)虛擬機設置聯(lián)網(wǎng)、CPU、內存、USB等; (6)將Ubuntu數據源地址修改為國內163服務(wù)器地址; (7)使用“apt-get update命令”更新數據源; (8)在Ubuntu安裝軟件vim,apt-get install vim; (9)在Ubuntu安裝軟件ssh,apt-get install ssh。 3.交叉編譯工具編譯的時(shí)候需要用到交叉編譯工具,本小節介紹如何安裝編譯Uboot和Kernel的編譯工具arm-2009q3。 提供的交叉編譯工具是用戶(hù)光盤(pán)“02_編譯器以及燒寫(xiě)工具”→“arm交叉編譯器”文件夾中的壓縮包“arm-2009q3.tar.bz2”。 使用SSH工具將交叉編譯工具拷貝到 Ubuntu12.04.2系統的文件夾“usr”-->“l(fā)ocal”-->“arm”中,local下默認沒(méi)有arm文件夾,可以新建一個(gè)。 使用命令“cd /usr/local/arm/”進(jìn)入/usr/local/arm文件夾,然后使用解壓命令“tar -vxf arm-2009q3.tar.bz2”解壓壓縮包。 接著(zhù)修改交叉編譯工具路徑,需要修改環(huán)境變量。在Ubuntu命令行中,執行命令“cd /root”和“vim .bashrc”,打開(kāi)環(huán)境變量文件“.bashrc”。 如下圖所示,在“.bashrc”文件中的最后一行添加如下信息: “export PATH=$PATH:/usr/local/arm/arm-2009q3/bin” ![]() 修改完成后保存退出。執行更新環(huán)境變量“source .bashrc”的命令。 最后,在Ubuntu命令行中輸入命令“arm”,然后按TAB鍵,如果在命令行中能夠看到arm編譯器的信息,就表明交叉編譯工具安裝成功。如下圖所示。 ![]() 為了方便用戶(hù),我們將庫文件和JDK的安裝命令制作成了腳本文件,用戶(hù)只要執行兩個(gè)腳本就可以安裝庫文件和JDK。這兩個(gè)腳本在用戶(hù)光盤(pán)“02_編譯器以及燒寫(xiě)工具”→“tools”文件夾下的壓縮包“Android_JDK.tar.bz2”中。 用戶(hù)將壓縮包拷貝到Ubuntu系統中,解壓壓縮包會(huì )生成文件夾“Android_JDK”。使用cd命令,進(jìn)入解壓出來(lái)的“Android_JDK” -->“jdk6”文件夾。如下圖所示,使用命令“./install-sun-java6.sh”運行腳本文件“install-sun-java6.sh”。需要注意的是,這條命令執行完畢可能會(huì )耗時(shí)15分鐘以上。執行腳本的時(shí),根據提示輸入對應的選擇命令。 ![]() 前一個(gè)腳本運行完畢之后,如下圖所示,進(jìn)入解壓出來(lái)的文件夾“Android_JDK”中,執行命令“./install-devel-packages.sh”運行腳本“install-devel-packages.sh”,安裝庫文件,需要注意的是,這條命令可能會(huì )耗時(shí)40分鐘以上。上面腳本執行的時(shí)候,需要根據提示輸入選擇命令。 ![]() 上面這個(gè)腳本執行完畢的時(shí)候,要注意一下是否有些庫文件提示沒(méi)有安裝。如果發(fā)現有庫文件沒(méi)有安裝的情況,有可能是網(wǎng)絡(luò )不好或者下載源丟失。這個(gè)時(shí)候請使用一下更新下載源的命令”apt-get update“,然后再執行一下上面的兩個(gè)腳本。 例如,如下圖所示,再次運行“./install-devel-packages.sh”之后,如沒(méi)有提示‘無(wú)法安裝的庫和軟件’,那么表明已經(jīng)安裝完整了。 ![]() 最后介紹降低Android編譯器GCC版本的方法。 使用Ubuntu編譯Android的時(shí)候需要用到Ubuntu系統自帶的GCC4.4.7編譯器,但是安裝的Ubuntu12.04.2版本,它的GCC版本過(guò)高,所以這里需將GCC編譯器的版本降低到4.4.7。 進(jìn)入前面解壓的文件夾“Android_JDK”中,找到文本“update_gcc.txt”,打開(kāi)文本“update_gcc.txt”后會(huì )看到里面有8條命令,這8條命令需要在Ubuntu命令行中依次執行。 使用命令打開(kāi)“update_gcc.txt”文件,如下圖所示。 ![]() 在依次執行了這8條命令之后,Ubuntu系統就將gcc的版本降低到4.4.7。使用命令“gcc -v”,可以看到gcc的版本為4.4.7了。 在執行這8條命令時(shí),只有第一條命令會(huì )耗時(shí)10分鐘左右,其它的都會(huì )很快完成。需要注意的是,命令一定要依次執行,不能有遺漏。 |