51

ffreestandinggcc 中有什么?它是干什么用的 ?我遇到了以下情况:

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

并且不明白,这到底是什么意思。

4

1 回答 1

75

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

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

有关更多信息,链接可能会有所帮助。

于 2013-07-17T06:21:08.163 回答