2011-02-04 2 views
12

Я пытаюсь использовать библиотеки Twitter и после добавления liboauth.a и добавления oauthconsumeriphonelib в мой путь поиска заголовка, теперь я дошел до 1 ошибки компиляции, Кажется, избавиться.Ошибка компилятора XCode: ld: библиотека не найдена для -loauth

ld: library not found for -loauth 
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 

Кто-нибудь знает, что может быть причиной этого?

ответ

17

Продолжая Что Робин предложил Вам также нужно установить путь поиска библиотеки. Щелкните правой кнопкой мыши целевой файл и выберите «Получить информацию еще», вы также можете получить то же самое, выбрав «Редактировать целевую аудиторию» на вкладке «Проект» в XCode. Найдите путь поиска в библиотеке и добавьте этот «$ (SRCROOT)/Twitter + OAuth/SAOAuthTwitterEngine« Где Twitter + OAuth/SAOAuthTwitterEngine - это путь к каталогу для библиотеки Twitter в папке проекта. Надеюсь, это исправит проблему.


enter image description here

+0

Спасибо Рахул. Я сделал то, что вы предложили, и теперь я вижу другие ошибки, с которыми, как я думал, я закончил. ld: warning: in /usr/local/lib/liboauth.dylib, файл был создан для i386, который не связан с архитектурой (armv6) Мне пришлось переустановить liboauth с ./configure CC = "gcc -arch i386" CXX = «g ++ -arch i386», и эти ошибки исчезли. Это просто предупреждение, но оно жалуется на кучу недостающих файлов ... objc-class-ref-to-OAToken в SA_OAuthTwitterEngine.o – Nefsu

+0

Фактически я вижу это предупреждение только при создании для устройства. Когда я создаю симулятор, я вижу те же предупреждения о ссылках на отсутствующие классы OAuth, но я не вижу предупреждения. – Nefsu

+0

Вам нужно будет добавить эти настройки для всех отдельно. Viz All configuration В свойствах Target Build. Также убедитесь, что библиотека физически присутствует в указанном месте в файле проекта –

2

Ну @ ​​Nefsu вам нужно добавить эти библиотеки в свой проект, добавив существующую структуру и затем указав путь к библиотекам, которые вы хотите использовать.

А если вы уже добавили библиотеки путем перетаскивания, чем Dont удалить их просто добавить существующие рамки, щелкнув правой кнопкой мыши по группам и папкам и добавьте библиотеки из папки, и вы будете делать

+0

Спасибо за предложение Робин, но я не уверен, что вы подразумеваете под «предоставлением пути к библиотекам, которые вы хотите использовать». Я добавил liboauth.a из/usr/local/lib, щелкнув правой кнопкой мыши без фреймворков и выбрав его как существующую внешнюю структуру. Есть ли что-то еще, что я должен делать? Я должен отметить, что до того, как я добавил эту библиотеку, я получал пять ошибок компиляции в отношении классов, которые не могли быть найдены. – Nefsu

+0

Можете ли вы дать точную ошибку, которую вы получаете во время сборки – Robin

+0

, вы также можете проверить эту ссылку http://stackoverflow.com/questions/4835754/why-is-there-a-compile-error-when-including-openssl- static-library/4835913 # 4835913 – Robin

1

Я обнаружил это вводит в заблуждение, сообщение при попытке перейти на новую библиотеку Google Analytics.

В моем случае проблема имела ДВЕ КОНФЛИКТИРУЮЩИЕ КОПИИ библиотеки. Они были в разных папках, но оба они были перечислены в моих сценариях построения библиотеки приложений (в разделе «Настройки сборки»).

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