我正在使用一个包含结构的库,其中 .h 文件都在一个目录中。这些 .h 文件包含一行,一个 #include
指令,它指向特定源文件夹位置中的“真实”头文件。这些文件中的 #include
路径是相对的。
所以,这是一个例子。目录结构为:
/project
/sources
<my .cpp files>
<my .cpp files>
...
/include
/component
foo1.h
foo2.h
/platformA/something/foo1.h
/platformB/somethingelse/foo2.h
/include/component/foo1.h 包含一行代码:
#include "../platformA/something/foo1.h"
/include/component/foo2.h 包含单行代码 #include "../platformB/somethingelse/foo2.h"
在我的资源中,我只有:
#include "component/foo1.h"
我项目的标题搜索路径指向/include
现在,Xcode 4 能够在 /include
中找到 component/foo1.h
,但它无法遵循这些 header 中的相对包含路径并找到 ' `/platformA/something' 目录中的 real' foo1.h,等等。
我怀疑这是因为顶级 foo1.h 文件中的包含路径是相对于它的位置的,但 Xcode 可能将其视为相对于其他一些位置(项目根目录或其他)? FWIW,Visual Studio 使用相同的配置没有问题。
我能做些什么来解决这个问题?
最佳答案
从您的目录结构来看,目录 platformA
和 platformB
似乎位于 include 文件夹之外。有两种可能的解决方案:
解决方案A
Move these to
include
folder.
方案二
Add
project/platformA
andproject/platformB
to thedirectories where include files should be looked for
in project settings.
关于c++ - Xcode 4 C++ 头文件与另一个头文件的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303267/