I'm seeing a lot of conflict information and would like some clarification. build, host and target
There are three system names that the build knows about: the machine you are building on (build), the machine that you are building for (host), and the machine that GCC will produce code for (target). When you configure GCC, you specify these with --build=, --host=, and --target=.
Actually, I don't understand what the difference between host and target in the above definition.
Some other page says
‘host’ is the machine (or architecture, or platform) that you are using to compile the code; ‘target’ is the machine (or architecture, or platform) that is intended to run the code.
This makes sense to me, but in this explanation, is the host always the same as the build ?? I'm pretty confused.
In my case, I am configuring such that the compiler (GCC) runs on x86_64 machine and the binary executable runs on ARM. The program is written in C, so the compiler is GCC.
./configure --build=x86_64 --host=x86_64 --target=arm-linux-gnueabihf
make
make install
It sounds like build, host are both x86_64 and target is arm. Is that correct?
I am compiling my own embedded program that runs on Jenkins machine (x86_64). And the embedded program runs on ARM based machine.