本文轉自迅為論壇:http://bbs.topeetboard.com 平臺:iTOP-4412開(kāi)發(fā)板 ![]() Uboot、Kernel 以及 Android 的編譯環(huán)境看似復雜,用戶(hù)只要抓住以下幾個(gè)要點(diǎn)就可以 了: 第一:Uboot、Kernel 編譯器。編譯器在光盤(pán)中都有提供,在需要使用的步驟中,會(huì )說(shuō) 明編譯器在光盤(pán)中的位置。 第二:設置環(huán)境變量。Uboot、Kernel 編譯器的環(huán)境變量設置后,編譯的時(shí)候,系統才 能找到編譯器。 第三:Android 文件系統的編譯器。編譯器需要使用 Ubuntu 系統自帶的 gcc 編譯器, 但是版本不對,所以需要降低版本。迅為將這個(gè)過(guò)程編寫(xiě)了成幾個(gè)簡(jiǎn)單的命令,用戶(hù)只需要挨個(gè)執行命令就可以了。 第四:庫文件。搭建過(guò)程中會(huì )給通過(guò)執行簡(jiǎn)單的腳本命令來(lái)安裝庫文件,復雜的步驟變的 簡(jiǎn)單有效。 另外,如果用戶(hù)想了解編譯環(huán)境具體是怎么搭建起來(lái)的,可以利用我們提供的腳本文件來(lái) 學(xué)習。 Android4.0.3編譯環(huán)境的兩種搭建方式 迅為電子給用戶(hù)提供兩種搭建編譯環(huán)境的方式,一種方法是用戶(hù)安裝虛擬機,然后安裝基 礎的 Ubuntu12.04.2 系統,利用我們提供工具和詳細的使用步驟,搭建編譯環(huán)境;另外一種方法是用戶(hù)安裝虛擬機,然后直接加載我們“搭建好的 Ubuntu 鏡像”,用戶(hù)只需要修改一下編譯器的環(huán)境變量,就可以直接用來(lái)編譯源碼。 1. 自己搭建環(huán)境 自己安裝虛擬機,安裝 Ubuntu12.04.2 系統,搭建環(huán)境。 2. 搭建環(huán)境 如何搭建編譯環(huán)境,這里需要注意的是,搭建過(guò)程中用到的各類(lèi)軟件,都需要和手冊提到的版本保持一致,如果使用的是“搭建好的鏡像”,則可以跳過(guò)這一節,但是編譯的時(shí)候要針對性的設置一下環(huán)境變量。 3. 安裝基本軟件 首先安裝虛擬機“Vmware_Workstaion_wm”,然后使用虛擬機安裝“Ubuntu12.04.2 初始系統”。 Ubuntu 的安裝方法可以參考 3.2 小節來(lái)安裝 Ubuntu12.04.2 原始系統,如下圖所示, Ubuntu 初始系統安裝完成。 ![]() 輸入密碼“topeet”,登陸 Ubuntu,鍵盤(pán)上按“Ctrl+Alt+t”,彈出 Ubuntu 的控制 臺。如下圖所示。 ![]() 安裝完成后進(jìn)入 Ubuntu 的終端,激活 root 用戶(hù),具體操作如下。 在 Ubuntu 命令行中,執行命令“sudo passwd root”。 接著(zhù)在 Ubuntu 的終端輸入安裝時(shí)的密碼和新密碼,Ubuntu 系統中密碼默認是隱藏的。 如下圖所示。 ![]() 接著(zhù)登錄 root 用戶(hù),具體操作如下。 在 Ubuntu 命令行中,執行命令“su root”。 接著(zhù)輸入密碼,就可以登陸 root 用戶(hù)。 后面所有的操作都需要在 root 用戶(hù)下面進(jìn)行操作,如下圖所示。 ![]() 虛擬機 VMware-workstation8.0.3 聯(lián)網(wǎng) 修改數據源地址,將 Ubuntu 數據源地址修改為國內地址。 更新數據源。 然后在 Ubuntu 安裝軟件 vim 和 ssh,在 Ubuntu 命令行中,執行命令“apt-get install vim”和“apt-get install ssh”。 上面安裝的 ssh 軟件,可以很方便在主機和虛擬機上傳遞文件,也可以通過(guò)遠程終端控制 Ubuntu 系統,這里推薦給大家使用。 安裝編譯組件 交叉編譯工具 編譯的時(shí)候需要用到交叉編譯工具,我們提供的交叉編譯工具是用戶(hù)光盤(pán)“02_編譯器以 及燒寫(xiě)工具”→“arm 交叉編譯器”文件夾中的壓縮包“arm-2009q3.tar.bz2”。 ![]() 使用 SSH 工具將交叉編譯工具拷貝到 Ubuntu12.04.2 系統的文件夾“usr”-->“local”-->“arm”中,local 下默認沒(méi)有 arm文件夾,可以新建一個(gè)。如下圖所示。 ![]() 拷貝編譯器之后如下圖所示。 ![]() 然后在 Ubuntu 系統中將壓縮包解壓到當前目錄下。 使用命令“cd /usr/local/arm/”進(jìn)入/usr/local/arm文件夾,然后使用解壓命令“tar -vxf arm-2009q3.tar.bz2”解壓壓縮包,如下圖所示。 ![]() 修改交叉編譯工具的路徑(修改環(huán)境變量) 修改交叉編譯工具路徑,需要修改環(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 編譯器的信息,就表明交叉編譯工具安裝成功。如下圖所示。 ![]() 安裝庫文件、JDK以及降低GCC版本 為了方便用戶(hù),將庫文件和 JDK 的安裝命令制作成了腳本文件,用戶(hù)只要執行兩個(gè)腳本 就可以安裝庫文件和 JDK。這兩個(gè)腳本在用戶(hù)光盤(pán)“02_編譯器以及燒寫(xiě)工具”→“tools”文件夾下的壓縮包“Android_JDK.tar.bz2”中,如下圖所示。 ![]() 用戶(hù)將壓縮包拷貝到 Ubuntu 系統中,解壓壓縮包會(huì )生成文件夾“Android_JDK”,如 下圖所示。 ![]() 安裝庫文件和 JDK 使用 cd 命令,進(jìn)入解壓出來(lái)的“Android_JDK” -->“jdk6”文件夾,運行腳本文件 “install-sun-java6.sh”。 需要注意的是,這條命令執行完畢可能會(huì )耗時(shí) 15 分鐘以上。 如下圖所示,執行“./install-sun-java6.sh”腳本。 ![]() 執行上面的命令的時(shí)候,根據提示輸入“回車(chē)”命令。升級完成之后如下圖所示。 ![]() 進(jìn)入解壓出來(lái)的文件夾“Android_JDK”中運行腳本“install-devel-packages.sh”,安 裝庫文件。在 Ubuntu 命令行中,執行命令“./install-devel-packages.sh”,需要注意的 是,這條命令可能會(huì )耗時(shí) 40 分鐘以上,如下圖所示。 ![]() 上面命令執行的時(shí)候,需要根據提示輸入“Y”。 ![]() 然后安裝過(guò)程中,還會(huì )提示輸入“y”,如下圖所示 ![]() 如下圖所示,安裝完畢。 ![]() 這里需要注意的是,上面這個(gè)腳本執行完畢的時(shí)候,注意一下有些庫文件是不是提示沒(méi)有 安裝。如果發(fā)現有庫文件沒(méi)有安裝,有可能是網(wǎng)絡(luò )不好或者下載源丟失。這個(gè)時(shí)候用戶(hù)使用一 下更新下載源的命令”apt-get update“,然后再執行一下上面的兩個(gè)腳本。 例如,如下圖所示,再次運行“./install-devel-packages.sh”之后,提示沒(méi)有無(wú)法安裝 的庫和軟件,那么表明已經(jīng)安裝完全了。 ![]() 降低 GCC版本 使用 Ubuntu 編譯 Android 的時(shí)候需要用到 Ubuntu 系統自帶的 GCC4.4.7 編譯器,但 是安裝的 Ubuntu12.04.2 版本,它的 GCC版本過(guò)高,所以這里需將要 GCC編譯的版本降低 到 4.4.7。 進(jìn)入前面解壓的文件夾“Android_JDK”中,會(huì )看到一個(gè)文本“update_gcc.txt”,打開(kāi) 文本“update_gcc.txt”后會(huì )看到里面有 8 條命令,這 8 條命令需要在 Ubuntu 命令行中依 次執行。如下圖所示,使用命令打開(kāi)“update_gcc.txt”文件。 ![]() 如下圖所示,有 8 條命令。 ![]() 例如執行第一條命令。 ![]() 根據提示輸入“y”,如下圖所示。 ![]() 其余幾條命令,如下圖所示,執行起來(lái)很快。 ![]() 在執行了這 8 條命令之后,Ubuntu 系統就將 gcc 的版本降低到 4.4.7。 如下圖所示,使用命令“gcc -v”,可以看到 gcc 的版本為 4.4.7 了。 ![]() 需要注意的是,在執行這 8 條命令時(shí),只有第一條命令會(huì )耗時(shí) 10 分鐘左右,其它的都會(huì ) 很快完成,而且命令一定要依次執行,不能有遺漏 |