Xcode 4.2: Как импортировать файл .h из подпроекта

Я новичок в подпроектах Xcode. В моем проекте iPhone app MyProject я пытаюсь реорганизовать некоторый общий код в проект статической библиотеки под названием MyLibrary. После создания MyLibrary и перемещения кода MyProject больше не компилируется. Ошибка заключается в том, что MyProject не может видеть файлы .h в MyLibrary.

В строке появляется ошибка MyLibraryConfig.h: No such file or directory:

#import "MyLibraryConfig.h"
  • Как импортировать файлы MyLibrary.h в MyProject?
  • Какая здесь самая лучшая практика? Предполагая, что у меня есть несколько таких библиотек, утомительно добавлять их в пути поиска заголовков к родительскому проекту.

Ответ 1

Возможно, ваш заголовочный файл также находится в подкаталоге.

Представьте себе следующую настройку каталогов:

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

        - MyLibrary
            - MyLibrary.xcodeproj
            - MyHeaderFile.h      <-- wanted header file

Если main.m имеет следующее содержимое:

#include "MyHeaderFile.h"

int main() {
    return 0;
}

Компилятор (gcc) будет считать, что MyHeaderFile.h находится в том же каталоге, что main.m, из которого он включен. Чтобы сообщить компилятору, что вы имеете в виду заголовочный файл в подпапке, вы можете сделать две вещи.

  • Вы можете добавить каталог в компилятор gcc, который говорит: "Эй, также смотрите в эту папку". Вы можете сделать это, используя флаг -iquote myFolder.
  • Вы можете включить каталог в include-statement: #include "MyLibrary/MyHeaderFile.h"

Конечно, может быть и другая проблема, но эти швы похожи на самые простые.

Ответ 2

В настройках сборки → Путь поиска заголовка → Добавить запись ниже

$(SRCROOT) и пометьте его как рекурсивный.

enter image description here