Ошибка «ld: библиотека не найдена для -lGTLTouchStaticLib» при связывании клиентской библиотеки Google APIs Objective-C как статической библиотеки с приложением

#ios #xcode #static-libraries #google-client

#iOS #xcode #статические библиотеки #google-client

Вопрос:

Я пытаюсь связать приложение со статической библиотекой iOS для клиентской библиотеки Objective-C Google APIs, как описано здесь . Для этого нужно было перетащить файл libGTLTouchStaticLib.a из области продуктов GTL.xcodeproj в представлении навигатора проекта Xcode в двоичные файлы ссылок приложения на этапе сборки библиотек.

В настоящее время я сталкиваюсь с этой ошибкой при создании проекта приложения в Xcode 5.1.1:

 ld: warning: directory not found for option  
'-L/Users/me/Library/Developer/Xcode/DerivedData/GTL-abc/Build/Products/Debug'
ld: library not found for -lGTLTouchStaticLib clang: error: linker
command failed with exit code 1 (use -v to see invocation)
 

Дальнейшее расследование показывает следующее:

  • Xcode сообщает полный путь к продукту libGTLTouchStaticLib.a в GTL.xcodeproj как /Users/me/Library/Developer/Xcode/DerivedData/GTL-abc/Build/Products/Debug/libGTLTouchStaticLib.a (т.е. без суффикса -iphoneos)
  • Однако (команда OS X) ls сообщает о своем местоположении как /Users/me/Library/Developer/Xcode/DerivedData/GTL-abc/Build/Products/Debug-iphoneos/libGTLTouchStaticLib. a (т.е. с суффиксом -iphoneos)
  • Перетаскивание libGTLTouchStaticLib.a, по-видимому, добавило следующую запись в путь поиска библиотеки приложения (в настройках сборки): $(USER_LIBRARY_DIR)/Developer/ Xcode/ DerivedData/ GTL-abc/Build / Products / Debug (т. Е. Без суффикса -iphoneos)

Что вызывает различное применение суффиксов двумя проектами Xcode и как я могу выровнять их поведение «обычным» способом (т. Е. Без «взлома» пути поиска библиотеки приложения).