隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數(shù)據(jù)加載中……

          Android深度探索(卷1):安裝C/C++交叉編譯環(huán)境

                X86架構(gòu)的CPU采用的是復(fù)雜指令集(Complex Instruction Set Computer,CICS),而ARM架構(gòu)的CPU使用的是精簡指令集(Reduced Instruction Set Computer,RISC)。由于這兩種架構(gòu)的CPU使用了不同的指令集,因此在X86架構(gòu)上開發(fā)可運行在ARM架構(gòu)上的程序就必須要使用交叉編譯器。 通常交叉編譯器和相關(guān)工具包含的了很多可執(zhí)行文件以及大量的共享庫及頭文件等資源。這些資源的集合稱為交叉編譯環(huán)境。

                           李寧的新浪微博 http://weibo.com/androidguy 歡迎關(guān)注

           
               在Internet上可以找到集成好的交叉編譯環(huán)境,Android NDK和Android源代碼中也包含的交叉編譯環(huán)境。當(dāng)然,如果我們需要一個完全獨立的交叉編譯環(huán)境,可以下載集成好的交叉編譯環(huán)境,也可以自己制作 (比較復(fù)雜,建議讀者下載集成好的交叉編譯環(huán)境)。下面介紹一個CodeSourcery交叉編譯環(huán)境,這個交叉編譯環(huán)境直接下載安裝就可以安裝。

              讀者可通過如下的網(wǎng)站訪問CodeSourcery下載頁面。

          http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

              上面的頁面并未直接提供CodeSourcery的下載鏈接,讀者可以點擊“Download the GNU/Linux Release”鏈接,并輸入Email(建議使用Gmail)、地址等信息,最后點擊“Get Lite!”按鈕提交信息。如圖2-29所示。最后系統(tǒng)會將下載地址發(fā)送到剛才輸入的Email。

          進入下載頁面,會看到如圖2-30所示的不同版本的下載鏈接,選擇最新的版本即可。

                        圖2-30  CodeSourcery的不同版本

                 進入CodeSourcery的下載頁面后,會看到如圖2-31所示的下載鏈接。目前CodeSourcery有Windows和Linux兩個版本。本書使用的是第1個(IA32 GNU/Linux Installer)。

               Linux版本的安裝文件是bin格式,讀者可執(zhí)行下面的命令安裝CodeSourcery。其中package表示CodeSourcery的安裝文件名。

          sh package.bin

               執(zhí)行上面的命令后,會顯示可視化的安裝界面,如圖2-32所示,讀者可按提示安裝CodeSourcery。

                為了使用方便,建議讀者將如下路徑加到PATH環(huán)境變量中。

             /root/compilers/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin

              下面編寫一個簡單的C程序來測試一下這個交叉編譯環(huán)境。

          //  first.c
           
          #include 
          <stdio.h>
           
          int main()
          {
              printf(
          "first arm program\n");
              
          return 0;
          }

          輸入下面的命令編譯first.c文件(需要加-static選項)。

          # arm-none-linux-gnueabi-gcc -static -o first first.c

          輸入下面的命令將first文件上傳到任意的Android設(shè)備的/data/local目錄中(沒有root權(quán)限也可以)。

          # adb push first /data/local

          使用adb shell命令進入Android設(shè)備的控制臺,并進入/data/local目錄,執(zhí)行如下的命令

          # ./first

               執(zhí)行上面的命令就會輸出“first arm program”信息。first程序在X86架構(gòu)上運行的Ubuntu Linux中是無法運行的。讀者可以試著在Ubuntu Linux中運行first程序,看看會發(fā)生什么。


          注意:在安裝Code Sourcery的過程中會在/lib目錄尋找一個libc.so.6庫文件,但在Ubuntu Linux11.04及以上版本/lib目錄已經(jīng)沒有l(wèi)ibc.so.6庫文件了。這個庫文件被放在了其他的目錄。在32位的Ubuntu Linux中該文件的路徑是/lib/i386-linux-gnu/libc.so.6,在64位的Ubuntu Linux中該文件的路徑是/lib/x86_64-linux-gnu/libc.so.6。在安裝Code Sourcery之前可以使用ln命令為libc.so.6文件在/lib目錄建立一個鏈接。

          本文節(jié)選至《Android深度探索(卷1):HAL與驅(qū)動開發(fā)》, 接下來幾篇文章將詳細(xì)闡述如何開發(fā)ARM架構(gòu)的Linux驅(qū)動,并分別利用android程序、NDK、可執(zhí)行文件測試Linux驅(qū)動。可在ubuntu Linux、Android模擬器和S3C6410開發(fā)板(可以選購OK6410-A開發(fā)板,需要刷Android)






          Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2013-01-28 23:28 銀河使者 閱讀(6230) 評論(0)  編輯  收藏 所屬分類: 原創(chuàng)linux 圖書

          主站蜘蛛池模板: 宜丰县| 石楼县| 郑州市| 黔南| 天津市| 马公市| 贞丰县| 巩义市| 延边| 海兴县| 湘阴县| 富蕴县| 淮安市| 仪陇县| 延边| 平阳县| 寿宁县| 阳谷县| 凤冈县| 洛浦县| 香港 | 象山县| 弥勒县| 昌江| 九龙县| 澄迈县| 克山县| 大名县| 固镇县| 邮箱| 北海市| 宁津县| 平罗县| 社会| 五指山市| 鄂伦春自治旗| 墨竹工卡县| 新竹市| 临城县| 肇庆市| 金塔县|