想象一下,你在两个不同的目录中有两个something.h。您无法写入这些目录并且没有root访问权限。
您的代码可以:
#include <something.h>
如何指定在特定目录中使用something.h而忽略另一个?
答案 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"
。