I don’t know gcc, but let’s analyze it from a CPU perspective:
i386 is the name of Intel's earlier 32-bit processor. It is in the same series as i486, i586, etc. This series is also called x86. And it maintains the backward compatibility feature of 486 being compatible with 386. Specifying i386 can achieve the widest compatibility with 32-bit processors
But Intel lost to AMD in 64-bit processors. AMD took the lead in launching a 32-bit compatible 64-bit processor based on x86, and it gained market recognition and was called amd64. Since this 64-bit processor can also run in 32-bit mode, it is also called x86-64.
has actually only developed into two commonly used standards so far, one is Intel's 32-bit standard x86, and the other is AMD's 64-bit standard amd64 (although amd64 is also developed from x86 ).
Of course Intel also has its own 64-bit standard called IA-64, which is the Itanium processor.
Based on my understanding, to answer your question: i386The target CPU platform of the compiled program can only be 32-bit compatible x86-64The target CPU platform of the compiled program can only be 64-bit compatible
The above analysis is only my personal understanding, please correct me if there is anything wrong.
I don’t know gcc, but let’s analyze it from a CPU perspective:
i386
is the name of Intel's earlier 32-bit processor. It is in the same series asi486
,i586
, etc. This series is also calledx86
. And it maintains the backward compatibility feature of 486 being compatible with 386. Specifyingi386
can achieve the widest compatibility with 32-bit processorsBut Intel lost to AMD in 64-bit processors. AMD took the lead in launching a 32-bit compatible 64-bit processor based on x86, and it gained market recognition and was called
amd64
. Since this 64-bit processor can also run in 32-bit mode, it is also calledx86-64
.has actually only developed into two commonly used standards so far, one is Intel's 32-bit standard
x86
, and the other is AMD's 64-bit standardamd64
(althoughamd64
is also developed fromx86
).Based on my understanding, to answer your question:
i386
The target CPU platform of the compiled program can only be 32-bit compatiblex86-64
The target CPU platform of the compiled program can only be 64-bit compatibleThe above analysis is only my personal understanding, please correct me if there is anything wrong.