C++ 正在尝试在包含代码块的子目录中包含文件

C++ 正在尝试在包含代码块的子目录中包含文件,c++,include,codeblocks,C++,Include,Codeblocks,我试图#在我的一个项目文件中包含“physics/everything.hpp”,但是我得到了错误:“没有这样的文件或目录” 我使用的是代码块,该目录肯定存在,因为它显示在左侧的项目浏览器窗格中 有什么想法吗?使用设置->编译器和调试器设置->搜索目录添加项目的根目录以包含目录。您应该这样做,以便能够通过相对于项目根目录而不是相对路径包含文件。向所有人道歉:我应该这样做: #包括“/。/physics/everything.hpp” 执行包含操作的文件本身位于子目录中。。。(新手错误)存在物理的

我试图
#在我的一个项目文件中包含“physics/everything.hpp”
,但是我得到了错误:“没有这样的文件或目录”

我使用的是代码块,该目录肯定存在,因为它显示在左侧的项目浏览器窗格中


有什么想法吗?

使用
设置->编译器和调试器设置->搜索目录
添加项目的根目录以包含目录。您应该这样做,以便能够通过相对于项目根目录而不是相对路径包含文件。

向所有人道歉:我应该这样做:

#包括“/。/physics/everything.hpp”


执行包含操作的文件本身位于子目录中。。。(新手错误)

存在
物理
的文件夹(即
/path/to/folder/folder
部分
/path/to/folder/physics
)必须是INCLUDE路径的一部分,或者作为
-i
选项传递给编译器。这看起来不健康…请正确配置编译器/IDE,并使用更简单的INCLUDE路径。目前,这段代码无法在其他任何地方编译,它非常脆弱,并且绑定到您当前的特定文件夹结构。是的@KonradRudolph是对的,相对路径很糟糕。创建文件取决于其在项目中的位置tree@Edward恕我直言,但那是胡说八道。事实上,每个大型ish项目都包含某种配置。不,这并不意味着每个人都需要使用同一个IDE——但确实需要工具中的一些共同基础。这就是为什么存在通用工具——比如makefile。这不仅仅是我们的“意见”认为这是不好的——这是专家们公认的、一致的共识,源于几十年来软件工程中收集的经验。@Konrad我有时使用Edward的构造。如果您正在编写一个依赖于其他各种第三方库的库,那么能够分发一个单独的包就很好了,这样您的用户只需要包含您的头。例如,您正在编写依赖于Foo0的库栏。。。你真的希望你的用户必须通知他的编译器在哪里可以找到100个不同的库头吗?如果Bar更改了它的依赖项怎么办?酒吧的用户将不得不重新配置一切。也许我不知道还有其他的解决办法,但相对路径对我来说很有效。@JBentley这是一个稻草人。使用sane include路径可以很好地实现这一点。我同意在库中这并不重要,但即使这样,使用根包含路径而不升级,并配置编译器的包含搜索路径也是常规做法。也就是说,在Boost这样的项目中,子项目将不包含“./config.hpp”
,而是包含。