什么是gcc中的-ffreestanding选项?

时间:2013-07-17 06:16:03

标签: c gcc compilation

gcc中ffreestanding是什么?它是干什么用的 ?我发现了以下内容:

gcc -ffreestanding -m32 -c kernel.c -o kernel.o

并且不明白,这究竟是什么意思。

1 个答案:

答案 0 :(得分:47)

freestanding环境是标准库可能不存在的环境,程序启动可能不一定是“主”。选项-ffreestanding指示编译器假设标准函数具有其通常的定义。

默认情况下,GCC将充当托管实现的编译器,将__STDC_HOSTED__定义为1,并假设在使用ISO C函数的名称时,它们具有标准中定义的语义。要使其作为独立环境的符合标准的独立实现,请使用选项-ffreestanding。然后它会将__STDC_HOSTED__定义为0,而不是对标准库中函数名称的含义进行假设。

有关详细信息,This链接可能有所帮助。