如何设置冲突头文件的优先级

How to set priority of conflicting headers c++

本文关键字:文件 优先级 冲突 何设置 设置      更新时间:2023-10-16

假设在两个不同的目录中有两个something.h。您不能写入这些目录,也没有根访问权限。

你有这样的代码:

#include <something.h>

如何指定在特定目录中使用something.h而忽略其他目录?

尝试使用:
#include "../directory/something.h"
注意,GCC使用搜索路径查找头文件。
您还可以要求GCC在指定的目录中查找头文件。

使用-iquote dir,将目录dir添加到要搜索头文件的目录列表的头部

通常,当-I切换到编译器时,提供了一个目录列表,该目录可以搜索被认为是系统包含的内容(在#include中使用尖括号)。通常这些包含目录在makefiles或项目文件中指定。

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

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