gcc中的-ffreestanding选项是什么?

问题描述 投票:30回答:2

gcc中的ffreestanding是什么?它是干什么用的 ?我遇到了以下问题:

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

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

c gcc compilation
2个回答
47
投票

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

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

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


0
投票

[“ Guide to Bare Metal Programming with GCC”由Pat Hanrahan和Julie Zelenski撰写

© www.soinside.com 2019 - 2024. All rights reserved.