почему я получаю эту ошибку при создании статической библиотеки для моего проекта iPhone с использованием XCode 4? - PullRequest
0 голосов
/ 01 июня 2011

У меня есть приложение для iPhone, и я просто хотел сделать статическую библиотеку из кода, чтобы я мог использовать ее в отдельном тестовом приложении (в рабочей области). Приложение компилируется нормально, но когда я пытаюсь скомпилировать версию библиотеки (которая имеет те же файлы кода), я получаю следующую ошибку:

  • Проблема с лексикой или препроцессором - файл "MyClass.h" не найден

Тем не менее, приложение все еще работает, даже если есть эта ошибка. Фактически, когда я компилирую приложение (которое использует статическую библиотеку), оно сначала говорит об отсутствии ошибок, а затем через секунду или две появляется вышеупомянутая ошибка.

Я в основном делаю:

  1. Создание новой цели в проекте с использованием статической библиотеки Coco Touch
  2. Добавьте файлы .m в целевых объектах "Исходники компиляции"
  3. Добавление файлов .h в целевые объекты "Копировать заголовки"
  4. Добавление того же набора библиотек в «Связывание двоичных файлов с библиотеками»
  5. Зайдите в Профиль и измените Цель на RELEASE

Есть предложения? Я здесь пропускаю шаг?

Ответы [ 2 ]

4 голосов
/ 02 июня 2011

Я попробую :-) Я думаю, возможно, MyClass.h был закрыт. Таким образом, он не добавляется в каталог заголовков при создании статической библиотеки. Вы должны проверить, если это так, проверив каталог выходного заголовка. Если заголовочный файл отсутствует, то он вполне уверен, что происходит.

Во-вторых, зачем использовать отдельное приложение для тестирования и, следовательно, вообще требовать создания статической библиотеки? У меня есть несколько статических библиотек и приложений, которые я тестирую с помощью GHUnit . Я делаю это, просто добавляя новую цель приложения и настраивая ее для запуска приложения GHUnit для iOS. Затем я могу добавить классы, которые я хочу протестировать, и любые инфраструктуры тестирования, такие как OCMock , без необходимости создавать отдельные проекты. По сути, похоже, что ваша методология тестирования, возможно, более сложна, чем необходимо. :-)

2 голосов
/ 02 июня 2011

Итак, проблема оказалась в том, что я установил «-ObjC» в опции «Другие флаги ссылок», которую я поставил там, так как на одном этапе пытался заставить вещи работать, я прочитал, что это требовалось - совет Дерексачтобы просмотреть журнал компиляции работали хорошо здесь

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