如何设置冲突头c ++的优先级

时间:2012-12-28 10:45:36

标签: c++ compilation header

想象一下,你在两个不同的目录中有两个something.h。您无法写入这些目录并且没有root访问权限。

您的代码可以:

#include <something.h>

如何指定在特定目录中使用something.h而忽略另一个?

2 个答案:

答案 0 :(得分:1)

尝试使用:
#include "../directory/something.h"
请注意,GCC会使用Search Path查找标题 您还可以要求GCC在指定目录中查找头文件。使用-iquote dir将目录dir添加到要搜索头文件的目录列表的开头。

答案 1 :(得分:1)

通常,有资格搜索被视为系统内容的目录列表(使用#include中的尖括号)是作为-I切换到编译器的集合提供的。通常这些包含目录在makefile或项目文件中指定。

许多(但不一定是所有)编译器将遵循列为包含目录的目录的顺序 - 因此您应该能够通过更改makefile中的顺序来选择您的首选项。但是,在某些编译器中,它可能很难,因为一些目录被认为总是包含在内(如默认情况下gcc假设您包含/usr/include)。 换句话说,这是非常具体的实现。

如果您不使用尖括号,而是使用双引号,则可以直接指定所需的文件,如#include "dir/file.h"