c - gcc 中的 -ffreestanding 选项是什么?

标签 c gcc compilation freestanding

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

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

又不明白,到底是什么意思。

最佳答案

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

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

欲了解更多信息,This链接可能有帮助。

关于c - gcc 中的 -ffreestanding 选项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17692428/

相关文章:

c - 如何在C中以十六进制格式打印2或4个字节

gcc - C++ 共享库符号版本控制

java - 为什么 Java 找不到我的构造函数?

c++ - 链接 UnitTest++ 失败

c# - 是否可以动态编译和执行C#代码片段?

c - 创建c语言库的钩子(Hook)

c++ - epoll集合中fd与关联状态的映射

c加密每次都会遇到同样奇怪的结果

c - 互斥体 |自旋锁 | ???在龙记

gcc - 为什么 nm libc.so 没有报告符号?