Я пишу статическую библиотеку для iPhone, и мне интересно, рекомендуется ли то, что я делаю, или я должен использовать другой подход.
Статическая библиотека, которую я пишу, зависит от libxml2. libxml2 имеет динамическую библиотеку (dylib) и статическую библиотеку (a). Я пробовал два подхода.
Первый подход - Когда я пытаюсь связать статическую библиотеку, добавив «-lxml2» в «Другие флаги компоновщика», сборка завершается с помощью следующего сообщения:
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library)
Подход второй - я могу успешно связываться с динамической библиотекой из моей статической библиотеки, но я не уверен, разрешено ли это (или правильный подход) на iPhone. Несмотря на то, что я создаю статическую библиотеку, разрешает ли Apple статические библиотеки, которые связываются с динамическими библиотеками? Я все еще изучаю статические библиотеки, но из моего понимания код из dylib будет объединен с моим кодом, чтобы создать одну библиотеку, таким образом, связывание с dylib не должно быть проблемой.
Подведем итог:
- mylibrary.a -> libxml2.a [Не работает]
- mylibrary.a -> libxml2.dylib [Строит, но правильно ли это и приемлемо?]