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