首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux中组织头文件?

如何在linux中组织头文件?
EN

Stack Overflow用户
提问于 2012-12-06 17:50:21
回答 2查看 3K关注 0票数 3

在linux上,许多文件夹下都有socket.h,如下所示。

  1. 它是如何决定在asm文件夹和linux位中存储什么的。我假设sys下的所有东西都是libc。
  2. gcc对头文件的解析顺序是什么?例如,它是否从sys,然后从linux,然后从sys,然后从位选择了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包含)

EN

Stack Overflow用户

发布于 2012-12-08 21:13:58

1)在默认的#include <socket.h>配置中,裸露的linux无法工作:

代码语言:javascript
复制
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和链接中列表中的其他目录。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13749486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档