首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-I目录与-isystem目录

-I目录与-isystem目录
EN

Stack Overflow用户
提问于 2010-04-06 00:41:17
回答 5查看 8.5K关注 0票数 33

如果我想包含要搜索头文件的目录,哪种方法是首选的,为什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-06 00:47:17

gcc documentation for -I

将目录dir添加到要搜索头文件的目录列表的头部。这可用于覆盖系统头文件,替换您自己的版本,因为这些目录是在系统头文件目录之前搜索的。但是,您不应该使用此选项来添加包含供应商提供的系统头文件的目录(为此使用-isystem )。如果使用多个-I选项,将按从左到右的顺序扫描目录;之后是标准系统目录。

如果还使用-I指定了标准系统包含目录或使用-isystem指定的目录,则将忽略-I选项。该目录仍将被搜索,但作为系统目录在其在系统包含链中的正常位置。这是为了确保GCC修复有buggy的系统标头的过程和include_next指令的顺序不会被无意中更改。如果确实需要更改系统目录的搜索顺序,请使用-nostdinc和/或-isystem选项。

因此,除了供应商提供的系统头文件等特殊情况外,-I可能是指定头文件位置的首选选项。

票数 11
EN

Stack Overflow用户

发布于 2010-04-07 15:47:17

查看这一点的一种方法是使用您使用-I控制的头文件,以及使用-isystem不使用的头文件(系统、第三方库)。当启用警告时,实际的区别在于来自-isystem标头的警告将被抑制。

票数 35
EN

Stack Overflow用户

发布于 2010-04-06 00:55:54

您应该使用-I来指定标头的位置。

您使用-isystem指定的文件在-I处理后会被搜索,并且会受到gcc的特殊处理(与标准系统头相同)。

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

https://stackoverflow.com/questions/2579576

复制
相关文章

相似问题

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