Xcode 4.2:如何从子项目导入.h文件

Sha*_*eem 11 xcode ios

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

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

#import "MyLibraryConfig.h"
Run Code Online (Sandbox Code Playgroud)
  • 如何导入MyLibrary.h文件MyProject
  • 这里的最佳做法是什么?假设我有多个这样的库,将这些库添加到父项目的头搜索路径是很繁琐的.

Sar*_*ran 26

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

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

在此输入图像描述

  • 你的小屏幕拍摄为我节省了很多头发! (2认同)

v1A*_*xvw 10

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

想象一下以下目录设置:

- Desktop
    - MyProject
        - MyProject.xcodeproj
        - main.m

        - MyLibrary
            - MyLibrary.xcodeproj
            - MyHeaderFile.h      <-- wanted header file
Run Code Online (Sandbox Code Playgroud)

如果main.m有这些内容:

#include "MyHeaderFile.h"

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

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

  • 您可以向gcc编译器添加一个目录:"嘿,也可以查看该文件夹".您可以使用-iquote myFolder标志来完成此操作.
  • 您可以在include语句中包含该目录: #include "MyLibrary/MyHeaderFile.h"

当然可能存在另一个问题,但这种接缝就像最简单的一样.

  • 对于第一个项目符号,嘿,同样在该文件夹设置中查看构建设置中的HEADER_SEARCH_PATHS. (2认同)