久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Buildroot - 讓交叉編譯更輕松

 dwlinux_gs 2014-09-25

Buildroot大大簡化了交叉編譯工具鏈的制作,,并且能為目標平臺產生完整的根文件系統(tǒng),,還可以制作在目標平臺上運行的本機編譯(Native Compile)工具鏈,。

我花了大量的時間研究buildroot,,基于2009.11的版本做了不少修改,,使得它符合固件開發(fā)的要求。下面列出的是一些主要的改動:
  • 增加了對2.6.12內核頭文件的支持(編譯uClibc需要)
  • 增加了對uClibc-0.9.28的支持
  • 增加了對busybox-1.15.3的支持
  • 增加了對gcc 3.4.4和gcc 4.4.2的支持
  • 增加了對nfs-utils-1.1.1的支持
  • 為libiconv瘦身,,只保留了unicode和簡體中文的支持,,編譯出的動態(tài)庫從900多K減小到200多K,。(編譯samba需要libiconv)
  • 讓libcurl和openssl只產生靜態(tài)庫。(編譯transmission要用到)
1. 準備編譯環(huán)境(適用于Ubuntu或Debian,。我用的是Ubuntu 9.10)
安裝編譯所需軟件包:
$ sudo apt-get install build-essential libncurses5-dev bison flex texinfo zlib1g-dev gettext libssl-dev autoconf

buildroot用wget下載軟件包源碼,,因此需要安裝wget:
$ sudo apt-get install wget

Ubuntu默認的shell是dash,它跟buildroot的腳本有些不兼容,。用下面的命令切換到bash:
$ sudo dpkg-reconfigure dash

2. 下載buildroot-2009.11,,放在HOME目錄下,當然也可以放在其它目錄,。
$ cd
$ wget http:///downloads/buildroot-2009.11.tar.bz2
$ tar jxf buildroot-2009.11.tar.bz2

3. 打補丁,。我把我的所有修改都放在一個補丁里:buildroot-2009.11.patch.zip
$ cd buildroot-2009.11
$ patch -p1 < ../buildroot-2009.11.patch

4. 配置buildroot。buildroot采用了和Linux內核一樣的配置工具,,使用非常方便,。建議第一次編譯時只選擇生成工具鏈,暫時不要選擇額外的軟件包,。我的補丁已經設置好了適合于固件開發(fā)默認配置,,因此你做配置時可以全部接受默認值。(C++默認是關閉的,,如果需要可以打開)
$ make menuconfig

屏幕截圖 - make menuconfig:
screenshot
退出配置時會生成一個“.config”文件,。

5. 編譯buildroot。這可能會花幾個小時,,取決于你的Internet帶寬以及CPU性能
$ make

編譯好的工具鏈默認放在output/staging目錄下,,你可以在配置buildroot是指定到其它目錄。我喜歡把它設為/opt/cross/gcc442-uc0928,,表示gcc版本是4.4.2,,uClibc版本是0.9.28。注意:指定的目錄你一定要有寫權限,。如何設置:make menuconfig  --> Build Options --> Toolchain and header file location

屏幕截圖 - 設置工具鏈位置:
screenshot

如果成功編譯了工具鏈,,接下來可以重新用make menuconfig選擇所需軟件包,比如我一般會選擇nfs-utils, portmap, wireless-tool, wpa-supplicant,ipkg等等,。選好軟件包再次執(zhí)行make,。編譯好的軟件包會放在output/target目錄下,這個目錄擁有根文件系統(tǒng)的目錄結構,。

如果想要制作在目標平臺運行的本機編譯(Native Compile)工具鏈,,則在make menuconfig時打開下面兩個選項:
1. Build options子菜單下的development files in target filesystem

屏幕截圖 - development files in target filesystem:
screenshot

2. Package Selection for the target子菜單下的native toolchain in the target filesystem

屏幕截圖 - native toolchain in the target filesystem
screenshot

當然,為了能在目標平臺上進行本機編譯,,還需要在配置時選擇一些必要的編譯工具以及程序庫,,如: make, autoconf, automake, bison, m4, flex, libz, libiconv 等等。

注:所謂本機編譯(Native Compile),是相對于交叉編譯而言的,。其實這是最常見的編譯方式,,即在本機編譯程序用于在本機或與本機兼容的硬件平臺上運行。

補充:
1. autoconf, automake等軟件包依賴于microperl軟件包,。在編譯microperl時可能會遇到找不到m4的錯誤,這時只須執(zhí)行make host-m4即可產生buildroot_dir/output/host/usr/bin/m4,,然后再執(zhí)行make,,中斷的編譯將繼續(xù)進行。
2. 編譯某些軟件包需要pkg-config for host(在編譯平臺上運行而非在目標平臺上運行),,執(zhí)行make host-pkgconfig可編譯產生buildroot_dir/output/host/usr/bin/pkg-config
posted on 2010-09-29 11:08 gouzhuang 閱讀(13754) 評論(35)  編輯 收藏 引用 所屬分類: 嵌入式Linux

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多