【参考原文】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目录下,如下图: