Ubuntu上构建MIPS 交叉编译环境


为了写点程序在 DD-WRT (broadcom) 上跑,尝试了几种方案建立交叉编译环境,最后还是以最简单的方式满足了自己的需求。

1. 在 cygwin 里面搞交叉编译环境是很麻烦的,要下载源码自己编译,而且由于移植到 Windows 平台上,往往会出现一些奇怪的小问题,不推荐。

2. 我曾经打算直接在路由器上交叉编译,不是不可以,麻烦,速度极慢,不推荐。

3. 其实我只是在 VMWare 里安装了一个 Ubuntu 9.04, 然后下载编译好的 open-wrt toolchain 解压出来就可以直接编译了 http://www.dd-wrt.com/dd-wrtv2/downloads/others/sourcecode/toolchains/gcc.3.4.4-broadcom-mipsel.tar.bz2

4. 安装 MIPS 模拟器

sudo apt-get install qemu

qemu-mipsel -L /home/steeven/work/dd-wrt/home/dd-wrt/whiterussian/openwrt/staging_dir_mipsel/ test

在我的 Ubuntu 上

qemu-mipsel -L /home/felix/opt/openwrt/ hellofile

很多文章写得很复杂,这时候要理清楚,几个概念,编译器要运行的平台,编译器编译出来的目标文件要运行的平台。在你不熟悉交叉编译的时候很容易搞混,搞清楚以后觉得每篇文章写得都很清楚~~~。

附:

1. 给 Ubuntu 安装 openssh server,

Ubuntu 默认安装没有 ssh server, 需要手工安装

sudo apt-get install openssh-server

2. ubuntu 不能直接安装 rpm 包,比如我要装 VMWare Toolkit

sudo apt-get install alien #alien默认没有安装,所以首先要安装它
sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.deb
sudo dpkg -i xxxx.deb #安装

3. 启动我们编译好的程序

i. 在 startup script 中启动就是守护进程方式的,和终端无关。

ii. 在终端里可以在命令后面加上 & 以后台进程方式运行,  e.g. /opt/share/startme &

iii. 可以用 nohup Command [ Arg ... ] [ & ] 运行。

 

本文来自:http://www.youwise.com/2009/06/cross-compile-on-ubuntu/

相关内容