Un compilador cruzado es un compilador capaz de crear código ejecutable para otra plataforma distinta a aquella en la que el compilador se ejecuta. Esta herramienta es útil cuando quiere compilarse código para una plataforma a la que no se tiene acceso, o cuando es incómodo o imposible compilar en dicha plataforma (como en el caso de los sistemas embebidos).
Un ejemplo de un compilador con estas posibilidades es el NASM, que puede ensamblar, entre otros formatos, ELF (para sistemas UNIX) y COM (para DOS).
El uso fundamental de un compilador cruzado es compilar para un entorno diferente en el que se ejecuta el compilador. Esto es muy utilizado en las siguientes situaciones: