Создайте статическую библиотеку для iOS - специально пространственную - PullRequest
4 голосов
/ 02 декабря 2011

Во-первых, пожалуйста, прости и укажи, если я собираюсь использовать какой-то другой протокол для ссылки на другую ветку / сообщение.

Был предыдущий поток о том, как скомпилировать пространственный объект для iOS , где верхний ответ частично описывал создание пространственного объекта как статической библиотеки для iOS. Ответ включал текст:

«Как только вы перетащите n, отпустите .a (оба требуются для работы в симуляторе и на реальном оборудовании), вы можете инициализировать пространственный объект, просто вызвав spatialite_init(1)».

Я предполагаю, что это переведено в какую-то версию следующего?

Xcode 4

  1. Файл-> Новый-> Новая цель-> iOS-> Каркас и библиотека-> Статическая библиотека Cocoa Touch

  2. Назовите библиотеку - libSpatialite_TedS

  3. Перетащите файлы заголовков в libSpatialite_TedS -> Копировать заголовки (вопрос здесь ... в каталоге 'headers' загрузки файла'atialite2.3.1.zip 'есть файлatialite.h. Затем в подкаталоге «Пространственный» - это еще один пространственный файл.h, который не является идентичным файлом и, очевидно, необходим. Просто перетащите файлы заголовков из каталога «заголовки», а затем перетащите каталог «Пространство» как каталог в область «Копировать заголовки». наша статическая библиотека XCode 'myNewLibrary'?)

  4. Перетащите «.a файлы» libSPATIALITE2.3.1_arm.a & libSPATIALITE2.3.1_x86.a

  5. Разве у нас не должно быть файлов '.m' для этих заголовков в поле 'Источники компиляции'?

Теперь, без ссылки на libSpatialite_TedS в моем проекте, когда я собираю «Command-B», сборка проекта завершается успешно. Тем не менее, когда я ищу скомпилированный продукт в

/ Пользователи / Admin / Library / Developer / Xcode / DerivedData / MyProject-gutnkbwqqonzgxbcmfzzzkadqhid / Build / Products / Release-iphonesimulator

Я вижу продукты сборки, но они не включают libSpatialite_TedS.

Это потому, что компилятор «умный» и распознает, что ни один из файлов заголовка / .a не указан в проекте, поэтому он не мешает их компиляции?

И правильный ли это путь к достижению цели оригинального плаката как скомпилировать пространственный объект для iOS ?

Большое спасибо, Тед С

Ответы [ 2 ]

3 голосов
/ 16 января 2012

Я столкнулся с ошибками компоновщика и с оригинальным постером, но решил эту проблему, включив в цель libsqlite3.dylib, libstc ++. Dylib и libiconv.dylib.

Надеюсь, это поможет!

2 голосов
/ 16 ноября 2012

Тед, я считаю, что файлы и заголовки .a (статическая библиотека) предназначены для использования в проекте сразу, а не в другой статической библиотеке, как вы описали. Они являются результатом результатов проекта. Я думаю, что вы можете найти проект, который построил их, здесь:

http://lionel.gueganton.free.fr/spatialite/

И еще немного о статических файлах библиотеки:

Что такое файл .a (как libcrypto.a)?

EDITED

Вот еще одна ссылка, которая может оказаться вам полезной. Это краткое изложение процесса сборки статической библиотеки в iOS: http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/

...