如何包含不同文件夹中的不同标头
How to include different headers from different folders?
我有一个C++项目,我喜欢有组织的mycode,但当我把所有东西都放在单独的目录中(头文件和源文件放在一起)时,我无法包含另一个文件夹中的头文件。例如:我有两个名为"FooException"answers"ContentProvider"的类,它们显然分到不同的目录中,FooException是一个异常,ContentProvider是一个实用程序。当然,我把它们放在不同的文件夹中,但当我试图在ContenProvider中包含FooException时,它不起作用,并说它找不到源文件。有人遇到过这样的问题吗?有什么建议吗?提前感谢,新年快乐!
UPD:好吧,人们建议看看#include<>之间的区别和#include",但这仍然没有帮助。尽管我可以从Main.cpp访问任何文件,但无论我使用哪个#include语句,我都无法访问ContentProvider类或FooException类中的文件。此外,无论我使用哪种语句,我都可以从项目的任何一点访问SFML库。这与SFML目录在我的项目中的"include"-目录中有关吗?
更新2:好吧,问题解决了,与#include<>无关和#include"。我只需要在写路径名称之前加上"..\",效果很好。我标出了最合适的答案。
您必须在IDE/Makefile中正确配置include header paths
设置。简单地说,为了能够搜索特定的头文件,编译器必须知道在哪里可以找到它。例如,在g++
中,我们使用-I
标志来提供各种包含路径。
例如,
$g++ -I/usr/abc/A/ main.cpp
在main.cpp中,包含了a.h
,该文件的上传路径为/usr/abc/A/a.h
。
您可以:
- 添加具有所需头文件的目录,作为预处理器查找的一部分。不同的编译器有不同的方法来实现这一点
- 将头文件添加为相对路径。例如
#include "../folderName/A.h"
- 联合收割机1。和2。在搜索路径中添加一个顶级目录,并将文件包含为#include
"topLevelDirectory/A.h"
我个人不喜欢2。因为如果您的文件层次结构发生了更改,则必须修改源代码才能更改相对路径。
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- vcruntime.h 从 Windows 包含文件夹中丢失?
- 当包含头文件的文件不在根项目文件夹中时,如何包含它
- 使用g++包含来自不同文件夹的头文件
- 使用文件对话框选择包含特定文件类型的文件夹?
- 如何将包含C++文件的文件夹添加到 NetBeans 项目中
- 我可以在C 中的Windows中读取一个文件,而无需锁定包含文件的文件夹
- 如何在 exe 文件夹中不包含纹理
- 无法创建将包含日志文件的文件夹
- Qt C++:将所有库文件包含在项目文件夹中
- 如何将包含多个.cpp源文件的文件夹导入Eclipse项目中,每个源文件都有一个main()定义
- 在 CMAKE 中包含来自 Android 项目不同文件夹的静态库
- C++项目文件夹外部依赖项仅包含 .h 和 .hpp 文件
- 构建块的Cmake(文件夹包含源)
- Eclipse 没有从单独的文件夹中看到我的 c++ 包含
- 嵌入 LuaJIT - 创建包含文件夹
- cmakelists.txt不在根文件夹中(但包含在源中)
- Coapp / autopkg :/build/native/include/ 中的多个包含文件夹
- 编译C++程序,如何正确链接到包含文件夹
- VS2013 C++:忽略平台包含文件夹