c++ - Xcode 4 C++ 头文件与另一个头文件的相对路径

标签 c++ xcode macos xcode4

我正在使用一个包含结构的库,其中 .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 使用相同的配置没有问题。

我能做些什么来解决这个问题?

最佳答案

从您的目录结构来看,目录 platformAplatformB 似乎位于 include 文件夹之外。有两种可能的解决方案:

解决方案A

Move these to include folder.

方案二

Add project/platformA and project/platformB to the directories where include files should be looked for in project settings.

关于c++ - Xcode 4 C++ 头文件与另一个头文件的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303267/

相关文章:

c++ - 首次使用对象后调用的全局对象构造函数

iphone - 计算 UIScrollView 的 minimumZoomScale

macos - 如何通过SSH获取在OSX终端中运行的命令的退出状态代码?

android - Android AVD只能一次启动

c++ - C++中如何调用递归链表遍历函数

c++ - 使用推力(素数)在 GPU 中编译

Xcode 7.0 和 7.1,代码覆盖开启,单元测试崩溃 "cannot merge previous GCDA file: corrupt arc tag"

ios - 在构建之后(但在安装之前)向 Info.plist 数组添加值

ios - 我可以使用 Windows 命令行 ssh 到 Mac 而不使用像 putty 这样的其他工具吗?

c++ - 如何从用户空间设置hostapd的 "channel"和 "hw_mode"(c++应用程序)