阻止 gcc 在包含搜索路径上搜索当前目录“-I-”选项
Posted
技术标签:
【中文标题】阻止 gcc 在包含搜索路径上搜索当前目录“-I-”选项【英文标题】:prevent gcc from searching the current dir "-I-" option on include search path 【发布时间】:2012-09-03 10:08:16 【问题描述】:我们的开发环境大量使用具有本地修改的标头的目录,编译器应该看到这些目录,而不是“提交的”“存储库”版本。
如果 header A 包含 header B,gcc 会在 A 所在的同一目录中查找 B,并且不遵循 seach 路径。
所以我们在 gcc 上使用了-I-
选项来防止这种情况。然后 Gcc 将严格遵循包含路径的层次结构。
与 gcc4 一样,-I-
选项已弃用并由-iqoute
替换。
我不知道如何使用 -iquote
选项获得相同的行为,因为我认为它缺乏在“当前”目录中禁用搜索的副作用。
见http://gcc.gnu.org/onlinedocs/cpp/Invocation.html#Invocation
任何想法如何实现相同的行为?
【问题讨论】:
【参考方案1】:AFAIK,除了在代码中使用 #include <foo.h>
代替 #include "foo.h"
之外,没有其他方法可以停用您抱怨的行为。
ISTR,但我没有找到参考资料,即弃用 -I-
而没有为此提供另一种机制的理由是库通常使用 #include "foo.h"
的形式来确保它们获得自己的内部头文件 @ 987654325@ 和 -I-
的使用在某些情况下会破坏它们,如果其他人碰巧在搜索路径上有类似名称的文件。
【讨论】:
以上是关于阻止 gcc 在包含搜索路径上搜索当前目录“-I-”选项的主要内容,如果未能解决你的问题,请参考以下文章