Мой случай прост: рабочая область с двумя одноуровневыми проектами: одно основное приложение (iOS) и проект, который создает несколько статических целевых библиотек, используемых приложением.
Вот как я настроил сборку:
- указал «путь поиска заголовка пользователя» в настройках сборки основного приложения на местоположение проекта библиотеки (через дерево исходных текстов)
- в редакторе главной цели моего приложения -> фазы сборки -> В разделе «Связать двоичные файлы с библиотеками» добавлены продукты библиотеки, которые я хочу использовать.
- в схеме, помеченные «Найти неявные зависимости»
После очистки (и удаленияпроизводные данные), сборка устраняет эту ошибку при сборке основного проекта:
ld: library not found for -lChipmunk
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1
Конечно, если я посмотрю вновь созданные производные данные, единственные объектные файлы, которые будут найдены:для основного приложения, а не библиотеки.Широко распространенное «find» для файлов * .o не раскрывает ничего значимого, поэтому библиотеки не теряются, они точно не собираются.
Некоторые дополнительные замечания:
- когда я спрашивал об этом на форумах разработчиков Apple, мне предложили добавить явные депы в главном редакторе Build Phases-> Target Dependencies.Но вы можете добавить здесь только цели к цели в том же проекте или подпроектах;в моем случае я использую проекты приложений и библиотек как братьев и сестер на рабочем месте.
- если я собираю каждую библиотеку вручную перед основной сборкой, все в порядке.
Обновление:
Я только что нашел обходной путь, который заключается в добавлении всех целей deps в часть build основной схемы приложения.Я пытался сделать это раньше, но безуспешно, но не понял, что могу перетаскивать цели по списку, чтобы получить правильный порядок сборки.Сборки теперь происходят в правильном порядке, как после очистки, так и после изменений в библиотеке или в главном источнике приложения.
Я оставляю здесь вопрос, потому что сортировка порядка сборки вручную, конечно, не должнанеобходимо.Должно быть что-то не так с тем, как у меня все настроено.