在linux上,许多文件夹下都有socket.h,如下所示。
/usr/include/sys/socket.h (由libc使用)
/usr/include/linux/socket.h
/usr/include/asm/socket.h
/usr/include/asm-泛型/socket.h
/usr/include/bit/socket.h(由libc包含)
发布于 2012-12-08 21:13:58
1)在默认的#include <socket.h>配置中,裸露的linux无法工作:
fatal error: socket.h: No such file or directory这意味着您必须在gcc搜索路径中指定目录的子目录:#include <sys/socket.h> (相对于/usr/include,所以绝对路径是/usr/include/sys/socket.h)。要确定要使用哪个头文件,请查看man socket。
通常,/usr/include/sys包含最终用户头,而bits/asm包含gcc和其他标头使用的中间标头。/usr/include/linux包含特定于Linux的头(通常与内核共享,因此它对可能对用户空间编程有用的内核结构的描述)。
Libc头通常分散在整个/usr/include中。Gcc特有的标题经常出现在像/usr/include/x86_64-linux-gnu之类的地方。
2)在这里:http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html你可以找到更多关于GCC搜索路径的信息。没有搜索任何猜测目录,只搜索/usr/include和链接中列表中的其他目录。
https://stackoverflow.com/questions/13749486
复制相似问题