2015-01-11 4 views
0

Я пытаюсь связать свою фреймворк A с другой нестандартной структурой B, разработал других людей. Я добавляю B в настройку сборки «link Binary with Libraries» A. Это позволяет компилятору найти файл заголовка B, который включен в A. Однако я все еще получаю ошибки компоновщика «неопределенных символов», ,Неопределенный символ при связывании с каркасом на Xcode

Кстати, для связывания B в A я открыл проект Xcode из B, осмотрел фильтр «Продукты», а затем пошел по пути к «B.framework» и скопировал его в папку A. Что-то не так с этим? В чем может быть проблема?

Я уверен, что нет различий в архитектуре цели A и B; они нацелены на одну и ту же платформу.

+0

«Я добавляю B к строке« link Binary with Libraries »A. Это позволяет компилятору найти файл заголовка B, который включен в A« Нет ». Заголовочный файл находится по пути поиска заголовка , _not_ через бинарную фазу связи. Тот факт, что вы можете компилировать, не доказывает, что структура правильно связана. И это явно не так. – matt

+0

@matt Я не говорю, что размещение заголовка является признаком того, что соединение должно быть хорошим! все, о чем я говорю, это то, что он указывает, что я успешно интегрировал B в решение A. – sramij

ответ

0

Я решил свою проблему следующим образом. Оказывается, неопределенные символы не экспортируются из B.framework, в то время как они используются A. Я смог исправить это, изменив файл .exp (export table), который поставляется вместе с B.framework, и добавление требуются символы A. После этого, чтобы убедиться, что выполнение не будет иметь проблем, я должен был убедиться, что B.framework также скопирован в целевое устройство; поэтому A может найти его во время выполнения.