【发布时间】:2016-01-09 13:52:16
【问题描述】:
我有一个没有包含的简单程序,编译时会出现一些警告:
int main(int argc, char **argv)
{
printf("hello");
exit(0);
}
编译:
gcc hello.c
Warning:
In function ‘main’:
warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
printf("hello");
^
warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]
exit( 0 );
^
编译命令非常简单,不包含有关包含printf 和exit 的包含库文件的信息。如果我错了,请纠正我,但看起来 gcc 默认将我的项目链接到这些库。这让我想到不需要包含 libc 库的文件?
再次纠正我。我收到警告是因为 GCC 不知何故知道 libc 的一些基本功能,而这些功能有不同的参数。但是由于 GCC 检查了所有的 libc,它还是找到了正确的函数。
什么是 libc。它是一些标准的二进制对象和头文件集吗?
【问题讨论】: