A freestanding
environment is one in which the standard library may not exist, and program startup may not necessarily be at "main". The option -ffreestanding
directs the compiler to not assume that standard functions have their usual definition.
By default, GCC will act as the compiler for a hosted implementation, defining __STDC_HOSTED__
as 1 and presuming that when the names of ISO C functions are used, they have the semantics defined in the standard. To make it act as a conforming freestanding implementation for a freestanding environment, use the option -ffreestanding
. It will then define __STDC_HOSTED__
to 0, and not make assumptions about the meanings of function names from the standard library.
For more Info, This link may help.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…