什么是gcc中的-ffreestanding选项?
什么是gcc中的ffreestanding
? 它是干什么用的 ? 我遇到了以下情况:
gcc -ffreestanding -m32 -c kernel.c -o kernel.o
并且不明白,它究竟意味着什么。
freestanding
环境是标准库可能不存在的环境,程序启动可能不一定是“主”。 选项-ffreestanding
指示编译器不要假设标准函数具有其通常的定义。
默认情况下,GCC将充当托管实现的编译器,将__STDC_HOSTED__
定义为1,并假设在使用ISO C函数的名称时,它们具有标准中定义的语义。 为了使其成为独立环境的符合标准的独立实施,请使用-ffreestanding
选项。 然后__STDC_HOSTED__
定义为0,而不是对标准库中函数名称的含义进行假设。
有关更多信息, 此链接可能会有所帮助。