如果你想写一个手机系统上的程序,你会怎么做呢?我们可能会想到,开发一个手机上的编译器,然后把程序放到上面编译成手机可以运行的机器代码。但是这样就有一个很大的问题了,那就是手机的运行速度和电脑相比十分缓慢(虽然现在手机的CPU已经很强悍了,但是手机的内存一向很小,不太足以运行编译器)。实际上,在现实中我们的做法是,在电脑上完成编译过程,然后直接把在手机上可以运行的机器代码拷贝到手机内。这样就不受限于编译时手机的内存和CPU限制了。这样一个过程,就叫做交叉编译。当然交叉编译也有其它的应用,比如有时候我们也需要在一台电脑a上生成另外一台电脑b上同一个语言的编译器,比如在Windows下编译一个Linux的编译器。