For general cross compiling issues, where a separate 'hosting' environment is used to build for the 'target' platform.
Cross compilation in the most general sense is simply building software on a platform that is different from the platform where the software will run.
A typical example is compiling software for an embedded system. It is usually not possible to run compilation tools on the target hardware, perhaps due to:
- Resource constraints
- The lack of a sufficiently functional operating system
- The lack of a compiler to build the tools themselves
In the GNU Compiler Collection (GCC), the platform where the tool chain runs is known as the "host", and the platform where the software runs is called the "target".