想象一下,您在两个不同的目录中有两个 something.h。您不能写入这些目录,也没有 root 访问权限。
你有这样的代码:
#include <something.h>
您如何指定在特定目录中使用 something.h 而忽略另一个?
想象一下,您在两个不同的目录中有两个 something.h。您不能写入这些目录,也没有 root 访问权限。
你有这样的代码:
#include <something.h>
您如何指定在特定目录中使用 something.h 而忽略另一个?
尝试使用:
#include "../directory/something.h"
请注意,GCC 使用Search Path查找标头。
您也可以要求 GCC 在指定目录中查找头文件。使用-iquote dir
, 将目录添加dir
到要搜索头文件的目录列表的头部。
通常,有资格搜索系统包含的目录列表(使用#include 中的尖括号)作为-I
编译器的一组开关提供。这些包含目录通常在 makefile 或项目文件中指定。
许多(但不一定是所有)编译器将尊重列为包含目录的目录顺序 - 因此您应该能够通过更改 makefile 中的顺序来选择您的偏好。但是,在某些编译器中这可能很困难,因为某些目录被认为总是包含在内(例如 gcc 默认假定您已/usr/include
包含)。换句话说,这是非常具体的实现。
如果您使用的不是尖括号,而是双引号,那么您可以直接指定所需的文件,例如#include "dir/file.h"
.