如何设置冲突头文件的优先级
How to set priority of conflicting headers c++
假设在两个不同的目录中有两个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"
。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 在C++程序中,IO/文件 IO 操作的优先级是否高于 CPU 操作
- 如何设置冲突头文件的优先级