【问题标题】:Xcode 4.2: How to import .h file from subprojectXcode 4.2:如何从子项目导入 .h 文件
【发布时间】:2012-02-29 15:22:20
【问题描述】:

我是 Xcode 子项目的新手。在我的 iPhone 应用程序项目MyProject 中,我试图将一些通用代码重构为一个名为MyLibrary 的静态库项目。在我创建MyLibrary 并移动代码后,MyProject 不再编译。错误是MyProject看不到MyLibrary中的.h文件。

错误MyLibraryConfig.h: No such file or directory即将出现:

#import "MyLibraryConfig.h"
  • 如何导入MyProject中的MyLibrary.h文件?
  • 这里的最佳做法是什么?假设我有多个这样的库,将它们添加到父项目的标头搜索路径是很乏味的。

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    在构建设置中 --> 标题搜索路径 --> 添加下面的条目

    $(SRCROOT) 并将其标记为递归。

    【讨论】:

    • 你的小屏幕截图让我省了很多头发!
    • 绝对是最好的解决方案!
    【解决方案2】:

    也许你的头文件也在一个子目录中。

    想象以下目录设置:

    - Desktop
        - MyProject
            - MyProject.xcodeproj
            - main.m
    
            - MyLibrary
                - MyLibrary.xcodeproj
                - MyHeaderFile.h      <-- wanted header file
    

    如果 ma​​in.m 有这些内容:

    #include "MyHeaderFile.h"
    
    int main() {
        return 0;
    }
    

    编译器 (gcc) 会认为 MyHeaderFile.h 与包含它的 ma​​in.m 位于同一目录中。要告诉编译器您的意思是子文件夹中的头文件,您可以做两件事。

    • 您可以在 gcc 编译器中添加一个目录,上面写着:“嘿,还要查看那个文件夹”。您可以使用-iquote myFolder 标志来做到这一点。
    • 您可以在包含语句中包含目录:#include "MyLibrary/MyHeaderFile.h"

    当然可能还有另一个问题,但这似乎是最直接的问题。

    【讨论】:

    • 对于第一个项目符号,嘿,还要查看 Build Settings 中的 HEADER_SEARCH_PATHS 文件夹设置。
    • @lef2,屋顶:感谢您的回答。但是,有更简单的方法吗?假设我有多个这样的库,将它们添加到父项目的标题搜索路径是很乏味的。
    • 好的,标题搜索路径有一个递归标志。这看起来不错。通过cocoanetics.com/2011/12/sub-projects-in-xcode .
    • 如果我想做相反的事情怎么办?如果我在 MyLibrary 中有一个 MyView.m 文件,并且我想导入位于 MyProject 目录中的名为 Constants.h 的文件?
    • #include "../MyHeaderFile.h" 应该可以解决问题。或-iquote ..../ 是父目录的 UNIX 别名。当然,你必须为你的库 Xcode 项目而不是你的另一个项目设置标志。
    猜你喜欢
    • 2012-10-09
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多