Файлы заголовков проекта, связанные с Xcode, не найдены - PullRequest
2 голосов
/ 21 января 2010

Вот ситуация у меня:
ProjectA - проект статической библиотеки Xcode.
ProjectA содержит логический код группы ExternLib с файлом ExternLib.h. Сам ExternLib.h находится в папке Classes / lib / ExternLib (относительно папки ProjectA). В ProjectA я использую ExternLib.h просто как: #import "ExternLib.h". Это отлично работает.

Далее у меня есть ProjectB. Это включает ProjectA как связанный проект XCode. Цель была добавлена ​​правильно и т. Д. Однако, когда я включаю файл в ProjectB, который, в свою очередь, включает в себя ExternLib.h, при создании ProjectB я получаю сообщение об ошибке, указывающее, что файл ExternLib.h не может быть найден.

Я попытался добавить путь к ExternLib.h к пути поиска заголовка (все типы: относительный, абсолютный, с рекурсией и т. Д.), Но безрезультатно. Я проверил, что у статической целевой библиотеки есть шаг заголовков копирования и в него включен файл ExternLib.h.

Кто-нибудь может пролить свет на то, как это обойти?

Ответы [ 2 ]

1 голос
/ 21 января 2010
  1. Добавить этап построения сценария запуска к цели для ExternLib, которая выполняет

    mkdir -p "${BUILT_PRODUCTS_DIR}ExternLibHeaders"
    
  2. Добавьте фазу сборки Copy Files, которая копирует заголовочные файлы ExternLib в ${BUILT_PRODUCTS_DIR}ExternLibHeaders, и добавьте все заголовки ExternLib в эту фазу.

  3. В целевом приложении для ProjectB добавьте ${BUILT_PRODUCTS_DIR}/ExternLibHeaders/ к путям поиска заголовка для всех конфигураций.

  4. В Xcode> Preferences> Build, установите каталог продуктов сборки в какое-то общее местоположение.

Четвертый шаг имеет решающее значение; это гарантирует, что BUILT_PRODUCTS_DIR одинаково для обоих проектов.

0 голосов
/ 21 января 2010

Трудно сказать, что могло пойти не так.

Я бы начал с нуля с учебника по созданию и использованию статических библиотек и посмотрел, не вытеснит ли какой-либо из шагов какие-либо идеи из вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...