I read some beginner materials for C/C++ cross-development environment, which consists a host machine and a target machine. The host machine can produce binary executable code for the target machine, which has a different hardware architecture compared with the host machine. For example, the host machine can be x86 CPU, but the target machine can be ARM CPU.
How mysterious it is! I am wondering what mysterious things do the host machine have in order to produce the binary code for a different hardware architecture machine. I think the host machine should contain,
- compiler/linker which works on host system but produce binary output for target system;
- .h header files for target system;
- dynamic library for target system, like .DLL for Windows and .so for Linux;
- shared library for target system, like .lib for Windows and .a for Linux.
Not sure whether my guess is correct. Any comments?
thanks in advance,