arm-linux交叉編譯器製作__linux
來源:互聯網
上載者:User
arm-linux交叉編譯器製作 本文介紹利用crosstool-ng工具製作arm-linu交叉編譯器,關於crosstool-ng不在多講(可以百度),下面以s5pv210處理器為例說明製作過程。
一、安裝crosstool-ng
1、擷取crosstool-ng 從官方網站擷取crosstool-ng,http://crosstool-ng.org/,這裡我選擇crosstool-ng-1.22.0.tar.bz2版本
2、配置,編譯,安裝crosstool-ng 解壓crosstool-ng-1.22.0.tar.bz2後進入crosstool-ng目錄,依次執行./configure、make、make install即可,在./configure時可能會出現錯誤,一般都是未安裝一些小工具,只要按照提示sudo apt-get install xxx安裝缺少的的包即可,make install之後會將ct-ng可執行檔安裝在/usr/local/bin/目錄下。
3、測試crosstool-ng是否安裝成功 在任一目錄下執行ct-ng -v,若顯示crosstool-ng資訊就表示安裝成功。
二、製作交叉編譯器 首先建立個檔案夾,作為編譯目錄,這裡我命名為crosstool,然後進入該目錄。
1、找模板 從crosstool-ng中的模板中找到和自己目標處理器最接近的一個,使用ct-ng list-samples列出所有模板 可見我的目標處理器s5pv210與arm-cortex_a8-linux-gnueabi最接近,所以就使用它組建組態檔案.config,執行ct-ng arm-cortex_a8-linux-gnueabi即可。
2、配置 配置一般需要三部分。
<1>路徑配置 進入Paths and misc options
然後配置這兩項 編譯過程中需要下載一些源碼包,Local tarballs directory就是存放這些源碼包的目錄(一般下載會很慢,可以在編譯之前將需要的源碼包下載好放在該目錄裡),若目錄不存在一定要建好。 Prefix directory是存放編譯後產生的交叉工具鏈的路徑。
<2>目標選項 進入Target options設定如下三項 第一個Emit assembly for cpu表示cpu,若將其清空則會多出兩項,分別是arch和tune,一般都設定上。 第二個是FPU處理器,VFP或neon等。 第三個是浮點運算類型,軟浮點或硬浮點。
<3>工具鏈配置 進入ToolsChain options Tuple's vendor string是供應商字串,若設定為zyz,則編譯後的工具鏈名字為arm-zyz-linux-gnueabi。 Tuple's alias是工具鏈的別名,若設定為arm-linux,則編譯後會建立工具鏈的軟串連,命名為arm-linux-xx。
3、編譯工具鏈 執行ct-ng build進行編譯 若編譯成功 然後,設定環境變數即可。
至此,交叉編譯器就編譯好啦,可以執行arm-linux-gcc -v驗證一下。