阻止gcc在包含搜索路径上搜索当前目录“-I-”选项

时间:2012-09-10 14:08:00

标签: c++ search gcc path include

我们的开发环境大量使用具有本地修改标头的目录,编译器应该看到它们而不是“已提交”的“存储库”版本。

如果标题A包含标题B,则gcc在同一目录A中查找B,并且不遵循搜索路径。 所以我们在gcc上使用-I-选项来防止这种情况发生。 Gcc将严格遵循include-path的层次结构。 与gcc4一样,-I-选项已被弃用,并由-iqoute重新定位。 我无法弄清楚如何使用-iquote选项获得相同的行为,因为我认为它缺少在“当前”目录中禁用搜索的副作用。

请参阅http://gcc.gnu.org/onlinedocs/cpp/Invocation.html#Invocation

任何想法如何实现相同的行为?

1 个答案:

答案 0 :(得分:8)

AFAIK,除了在代码中使用#include <foo.h>表单而不是#include "foo.h"之外,没有其他方法可以停用您所抱怨的行为。

ISTR,但我没有找到一个参考,在不提供该方面的另一种机制的情况下弃用-I-的理由是库通常使用#include "foo.h"形式来确保它们自己获得内部头文件foo.h-I-的使用在某些情况下会破坏它们,如果其他人碰巧在搜索路径上有一个类似名称的文件。