- gcc 中的 -ffreestanding -ffreestanding -fno-rtti -fno-exceptions 选项是什么?
freestanding选项:
一个 freestanding环境是一种标准库可能不存在的环境,程序启动可能不一定在“main”。选项 -ffreestanding指示编译器不要假设标准函数有它们通常的定义。
默认情况下,GCC 将充当托管实现的编译器,定义 __STDC_HOSTED__作为 1 并假设当使用 ISO C 函数的名称时,它们具有标准中定义的语义。要使其成为独立环境的符合标准的独立实现,请使用选项 -ffreestanding .然后它将定义 __STDC_HOSTED__到 0,而不是对标准库中函数名称的含义进行假设。
fno-rtti选项:
禁用运行时类型信息
fno-exceptions选项:
禁用异常机制
总结:一般只有对程序运行效率及资源占用比较看重的场合才会使用, 如果要做这两个的话最好连libstdc++和其他所有的的c++库都用这两个参数重新编译一遍, 否则光是你自己的程序禁用了这两个特性, 而别的库依然开着, 效果就大打折扣了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)