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

Joh*_*Doe 11 c++ search gcc path include

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

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

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

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

APr*_*mer 8

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

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