【參考原文】http://blog.csdn.net/gubenpeiyuan/article/details/7895469
由於要在本地編譯程序,在嵌入式系統上運行,因此需要在本地裝編譯器,目前主要需要mipsel-linux-gcc。
之前一直以為可以用apt-get install找到,結果找了好久找不到,發現還是得自己編。
主要是參考上面的那個鏈接,然后這對自己需求改了改配置。
1. 環境
系統:Ubuntu 16.04
軟件: buildroot
該軟件可以編譯用於 mips, arm等等 的C編譯器。
2. 下載
wget http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
tar -jxvf buildroot-snapshot.tar.bz2
cd buildroot
也可以直接去官網 https://buildroot.org 下載最新的;
3. 配置buildroot (重要)
make clean
make menuconfig
會出現選擇菜單,如下圖:
選擇第一項“Target Architecture”, 改成 MIPS (little endian)
另外,選擇“Toolchain”, 將"kernel headers"改成自己主機上的Linux版本(及運行改編譯器的主機)
可以在主機上通過 uname -r 或者 cat /proc/version查看。
原生的是只有gcc部分,沒有g++部分,需要對編譯C++程序,則在菜單里選擇 Enable c++選項(按 y 選取)。
用於編譯python的配置選項
我主要用這個來編譯python放在嵌入式設備系統上用,最開始就按照上面的選項,編譯一般的程序沒問題,
編譯python會出現:unknow type name 'wchar_t' 錯誤,這個需要在這里的工具里選幾個選項;
a1. 在配置里選擇對wchar的支持;
a2. 退出Target options,進入Target packages,在Target packages里再添加幾個選項
(這里我沒看不配置這個會出什么問題,這個里面到底做什么的,我直接按照
https://delog.wordpress.com/category/python/ 這個里面的配置弄了)
進入Interpreter lanaguages and scripting 選項,選擇python選項,然后吧core python modules里的都選了吧~(編譯一次太費時了,缺個什么又得重新編譯這個工具鏈)
配置完了后,保存,並退出。
4. 編譯
因為需要聯網下載一些文件,因此主機需要聯網;
需要提前安裝好 bision, flex, textinfo, ncurses等庫。
sudo apt-get install texinfo flex bison libncursesn5-dev patch gettext g++
然后 make -j 編譯。
5. 結果
最后的結果在 buildroot/output/host/usr/bin目錄下,如下圖: