【发布时间】:2013-11-27 23:17:48
【问题描述】:
提问界面标记了许多“可能已经有你答案的问题”,但我已尝试尽职调查以检查是否有任何人在问我在这里的确切内容。如果这是重复的,我深表歉意。
假设我有以下不正确的程序:
外部无效未定义函数(无效); int main(int argc, char **argv) { 未定义函数(); undeclared_function(); 退出(0); }用 gcc 编译得到:
$ gcc 警告.c warnings.c:在函数“main”中: warnings.c:6:2: 警告:内置函数‘exit’的隐式声明不兼容 [默认启用] /tmp/ccVzjkvX.o:在函数“主”中: warnings.c:(.text+0x15): undefined reference to `undefined_function' warnings.c:(.text+0x1f): undefined reference to `undeclared_function' collect2: ld 返回 1 个退出状态 $我知道为什么会发出这些警告,以及如何纠正它们 - 这不是我的问题。
从输出中可以看出,gcc 将exit() 与其他未定义/未声明的函数区别对待,因为它认为它是“内置函数”
对于给定的 gcc,我如何知道 gcc 认为是“内置函数”的函数列表是什么? 究竟是c标准库函数列表还是其他?
我考虑过nm libc.so,但是在我的 Ubuntu VM 上,这个 glibc 似乎被剥离了,所以在这方面没有有用的信息:
【问题讨论】:
标签: c gcc standard-library gcc-warning