A system that compiles a program for later execution in an environment that may be physically and logically different from the compiling environment. In a cross compiler, the term host applies to the compiling environment, and the term target applies to the run-time environment.
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the cross compiler is run. Such a tool is handy when you want to compile code for a platform that you don't have access to, or because it is inconvenient or impossible to compile on that platform (as is the case with embedded systems, on which various kinds of microcontrollers run with a minimal amount of memory for their own purpose).