ttyLinux 源代碼編譯--armv5交叉編譯環境的建立過程

 

ttyLinux 源代碼編譯 armv5交叉編譯環境的建立過程

下載ttylinux-src-mp8.tar.bz2, 並解壓到/usr/src後得到目錄結構如下:
 ttylinux-src-mp8
      -- ttylinux-src-mp8
      -- xbuildtool-0.1

其中的xbuildtool-0.1就是建立交叉環境的工作目錄.


cd xbuildtool-0.1然後執行  
make setup
生成配置

這樣會生成 xbt-build-env.sh和xbt-build-config.sh

接成執行make xxxx, xxx爲要生成的目標系統。以armv5tej-2.9-qnueabi爲例

 

發現編譯中出現以下問題,並解決


1.下載binutils-2.19.tar.gz2失敗,因爲網絡上的文件不存在,解決辦法:
 修改scripts/binutils/binutils-versions.sh,修改2.19的URL爲:
 _BINUTILS_URL[0]="http://mirrors.usc.edu/pub/gnu/binutils .....


2.編譯binutils-2.19出現警告性錯誤unused-but-set-variable,變量定義但沒有使用,解決方法:
 修改scripts/binutils/binutils-methods.sh,中的make命令行參數增加CPPFLAGS參數如下:
  CPPFLAGS=" -Werror -Wno-unused-but-set-variable" || exit 1


3.編譯過程中出現一些錯誤,大致上是因爲沒有安裝相應的包引起的,可以通過查看相應的編譯日誌查找問題,
 編譯日誌所目錄:../cross-tools-2.9-2.6.34.6/armv5tej-2.9-generic-linux-gnueabi
 我發現缺少的包如下:
 apt-get install gawk

 apt-get install autoconf

 atp-get install bison

 


4.編譯腳本分析.


 核心編譯腳本在scripts/build-toolchain.sh,環境變量的腳本爲:scripts/xbt-build-env.sh.
 其中會先調用xbt_get_file從scripts/xxx/xxx-version.sh中定義的參數中下載相文件。
 所有文件下載完成後都保存到pkg-src目錄中。
 接着對所有文件進行md5檢驗,檢驗結果應該和配置中的一致才能繼續。
 然後分別編譯每個包,編譯腳本在scripts/xxx/xxx-methods.sh.

 編譯時的生成的中間文件在build目錄下,同時如果源代碼中有補丁,會自動調用patches上的相應文件進行更新。
 編譯後的結果在../cross-tools-2.9-2.6.34.6目錄下。

 如果編譯過程中斷,原來的腳本後要求刪除編譯目錄後重新編譯,不過也可以手工修改build-toolchain.sh,跳過某一個編譯過程,直到編譯完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章