我正在做一个项目,我一直对我应该如何从不同的目录导入文件感到困惑。以下是我的一些文件的组织方式:
-stdafx.h
-core/
-->renderer.cpp
-shapes/
-->sphere.h
-->sphere.cpp
我如何从 --- 访问 stdafx.h
和 shapes/sphere.h
core/renderer.cpp
?
原文由 Stas Jaro 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在做一个项目,我一直对我应该如何从不同的目录导入文件感到困惑。以下是我的一些文件的组织方式:
-stdafx.h
-core/
-->renderer.cpp
-shapes/
-->sphere.h
-->sphere.cpp
我如何从 --- 访问 stdafx.h
和 shapes/sphere.h
core/renderer.cpp
?
原文由 Stas Jaro 发布,翻译遵循 CC BY-SA 4.0 许可协议
一种(不好的)方法是在#include 行中包含要包含的头文件的相对路径。例如:
#include "headers/myHeader.h"
#include "../moreHeaders/myOtherHeader.h"
这种方法的缺点是它要求您在代码中反映您的目录结构。如果您更新了目录结构,您的代码将不再工作。
更好的方法是告诉您的编译器或 IDE,您在其他位置有一堆头文件,这样当在当前目录中找不到它们时,它会查找那里。这通常可以通过在 IDE 项目设置中设置“包含路径”或“搜索目录”来完成。
对于 Visual Studio ,您可以在解决方案资源管理器中右键单击您的项目,然后选择“属性”,然后选择“VC++ 目录”选项卡。从这里,您将看到一条名为“包含目录”的行。在那里添加您的包含目录。
对于 Code::Blocks ,转到项目菜单并选择“构建选项”,然后选择“搜索目录”选项卡。在那里添加您的包含目录。
对于 g++ ,您可以使用 -I
选项指定备用包含目录。
g++ -o main -I /source/includes main.cpp
这种方法的好处是,如果您更改了目录结构,您只需更改单个编译器或 IDE 设置,而不是更改每个代码文件。
原文由 Pushpak Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
有很多方法。例如,您可以
#include "../stdafx.h"
。更常见的是将项目的根目录添加到包含路径并使用#include "shapes/sphere.h"
。或者在包含路径中有一个带有标题的单独目录。