費了九牛二虎之力,終于把MIPS交叉編譯環境搭建好了。接下來跟大家分享一下這篇文章,裡面的方法是我親自試過的,絕對好用。謝謝寫這篇文章的部落客。
MIPS是一個RISC的處理器體系結構,與之類似的還有x86,arm等,今天我們介紹如何在Ubuntu下搭建MIPS交叉編譯環境:
1.下載下傳:
在 http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2 下載下傳buildroot:
tar -jxvf buildroot-snapshot.tar.bz2
cd buildroot
2.配置buildroot:
make clean
make menuconfig
會出現和編譯Linux類似的菜單選擇界面,如下圖:
選擇第一項“Target Architecture”,改成MIPS(little endian),如下圖:
另外,選擇“Toolchain”,務必将“Kernel Headers”的Linux版本改成你自己主機的Linux版本(因為我們編譯出的MIPS交叉工具是需要在我們的主機上運作的),如下圖,我的主機是Ubuntu 11.04的,Linux版本是2.6.38-8:
3.編譯:
注意:
1.編譯過程中必須聯網,因為會下載下傳一些壓縮包存放在buildroot/dl檔案夾下,比如binutils、gcc等!如下圖:
2.必須事先安裝好bison、flex、texinfo、ncurses等,比如我第一次編譯,出現如下錯誤,因為我沒有安裝texinfo:
sudo apt-get install texinfo 就可以了:
之後就是漫長的等待了,差不多1個小時。。。
4.
編譯完成後,在buildroot檔案夾下多了一個output檔案夾,其中就是編譯好的檔案:
cd buildroot/output/host/usr/bin
我們發現了mips的交叉編譯工具已經生成啦~~:
5.
另外,在buildroot/output/target檔案夾下,我們發現這就是我們之前選擇的Linux 2.6.36-8版的busybox!如下圖:
我們用file指令檢視其中的某個可執行檔案,如下:
我們看到,生成的檔案确實是MIPS平台的,在我的x86下是無法運作的。
6.
為了以後友善使用,我們直接将其中的bin檔案夾添加到環境變量中,省得我們日後輸入長長的路徑了。
将路徑添加到~/.bashrc檔案中,然後運作source指令:
source ~/.bashrc
具體請參考:http://blog.csdn.net/xiaoguaihai/article/details/8766448
以上轉自:http://blog.csdn.net/xiaoguaihai/article/details/8766394
以下轉自:http://www.linuxidc.com/Linux/2012-04/58746.htm
如果 make menuconfig 報錯如下:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1
make: *** [menuconfig] 錯誤 2
上述錯誤是說,執行make menuconfig 指令需要安裝ncurses-dev
解決方案:
在指令行中輸入:
sudo apt-get install libncurses5-dev
make menuconfig
Ncurses是一個能提供功能鍵定義(快捷鍵),螢幕繪制以及基于文本終端的圖形互動功能的動态庫。
這就不難解釋為何執行make menuconfig指令需要ncurses了。
Ncurses是一個能提供基于文本終端視窗功能的動态庫. Ncurses可以:
隻要您喜歡,您可以使用整個螢幕
建立和管理一個視窗
使用8種不同的彩色
為您的程式提供滑鼠支援
使用鍵盤上的功能鍵
Ncurses可以在任何遵循ANSI/POSIX标準的UNIX系統上運作,除此之外,它還可以從系統資料庫中檢測終端的屬性, 并且自動進行調整,提供一個不受終端限制的接口.是以,Ncurses可以在不同的系統平台和不同的終端上工作的非常好。