Cross-compilation
|
Compiling a program takes place by running the compiler on the build platform. The compiled program will run on the target platform. Usually these two are the same; if they are different, the process is called cross-compilation.
Typically the hardware architecture differs, like for example when compiling a program destined for the MIPS architecture on a X86 computer; but cross-compilation is also applicable when only the operating system environment differs, as when compiling a FreeBSD program under GNU/Linux.
Cross-compilation is somewhat more involved and errors are easier to make than with normal compilation. Due to this it is normally only employed if the target is not yet self-hosting (able to compile programs on its own), unstable, or the build system is simply much faster. For many embedded systems cross-compilation is the only possible way (some may be not powerful enough to run a compiler).
References
Crosstool (http://kegel.com/crosstool/) is a helpfull toolchain of scripts, which create a Linux crosscompile enviroment for the disired architecture.