GCC编译屏蔽内建函数

转自:http://blog.sina.com.cn/s/blog_7077264c0100lvwn.html
-fbuiltin

这是默认选项,用于通过名字来识别内建函数。选项 -fno-builtin 指出,除非利用前缀 __builtin_进行引用,否则不识别所有内建函数。例如,为了获得内建版本,应该调用 __builtin_strcpy() 而不是名为 strcpy()的函数。

为了避免使用选项 -fno-builtin而抑制所有内建函数,可将函数的名称追加到选项名之后,有选择地指定不使用哪些内建函数。例如,想使用除 bzero() 和 sqrt()之外的所有内建函数,可以使用如下形式:

-fno-builtin-bzero -fno-builtin-sqrt

对 C++ 而言, -fno-builtin 始终有效,因此惟一可以直接调用 C 内建函数的方法就是使用 __builtin_前缀, GNU C++ 标准库就使用了很多内建函数。

参见选项 -fbuiltin- function , -ffreestanding 和 -fnonansi-builtins。

### 解决 GCC 编译过程中遇到的警告 当使用 GCC 进行编译时,可能会遇到各种类型的警告。这些警告通常指示潜在的问题或不符合最佳实践的情况。为了处理这些问题,可以采取以下几种策略: #### 修改源代码消除警告 许多警告可以通过修正源代码来解决。例如,未使用的变量会触发 `-Wunused-variable` 警告;此时应该移除不必要的声明或将该变量实际投入使用。 对于特定情况下无法立即修复但又希望忽略某些警告的情形,则可以在函数级别上应用属性宏定义抑制它们的发生。比如下面的例子展示了怎样针对单个函数禁用某个指定类别的警报[^1]: ```c __attribute__((unused)) void my_function() { int unused_variable; // No warning will be generated here. } ``` #### 使用命令行参数控制警告行为 GCC 提供了一系列用于管理警告显示方式及其严重性的开关。常见的有: - `-Wall`: 开启几乎所有有用的警告消息; - `–pedantic`: 严格遵循 ISO C/C++ 标准语法检查,报告任何扩展特性作为警告。 如果只想关闭某一种具体的警告而不是全部的话,也可以借助于专门定制化的标志位实现这一目的。如要屏蔽关于隐式转换可能丢失精度方面的提示可以用到 `-Wno-conversion` 参数[^2]。 #### 查阅官方手册获取更多帮助 除了上述提到的方法之外,还可以查阅 GCC 官方的手册页(`man gcc`) 或者运行 `gcc --help=warnings` 获取更详细的有关可用警告选项的信息列表以及解释说明[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值