Соображения по включению библиотеки как двоичного файла против исходного - PullRequest
7 голосов
/ 23 июня 2009

Я пытаюсь написать SSH-клиент для iPhone, и я хотел бы использовать для этого библиотеку с открытым исходным кодом libssh2. Это написано в C.

Как мне включить эту библиотеку C для моего приложения для iPhone? Должен ли я скомпилировать его в какой-нибудь двоичный файл, который я включаю в мое приложение, или добавить весь исходный код в свой проект и попытаться скомпилировать его вместе с остальной частью моего приложения?

Ответы [ 4 ]

3 голосов
/ 24 июня 2009

Я интерпретирую этот вопрос как:

"Должен ли я скомпилировать код библиотеки C один раз и включить двоичную библиотеку в свой проект? Или я должен включать весь исходный код и компилировать его каждый раз, когда собираю свое приложение?" Это зависит. Один из проектов, над которым я работаю, зависит от нескольких внешних библиотек. В принципе, у нас есть простое правило:

  • Как вы думаете, вам нужно будет часто менять код в библиотеке C?

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

В зависимости от размера библиотеки вы можете установить ее в качестве отдельной цели в своем проекте или для большей гибкости в качестве подпроекта вашего основного проекта.

Если бы я был на вашем месте, я бы заранее собрал libssh2 и просто включил бинарную библиотеку в свой проект iPhone. Конечно, я бы по-прежнему держал источник libssh2 на всякий случай, если его нужно будет восстановить в будущем.

2 голосов
/ 24 июня 2009

У меня есть приложение для iPhone, которое на 90% c. У меня не было проблем с добавлением сторонних источников в мой проект и компиляцией. Я использую Lua, zLib и libpng без изменений. Я также включил стандартные библиотеки, такие как unistd и libgen, и они просто работают и торгуют;

1 голос
/ 23 июня 2009

В библиотеке iPhone Three20 есть отличный способ добавить свою библиотеку в ваш проект xcode. Дайте этому шанс.

0 голосов
/ 24 июня 2009

Я думаю, вы обнаружите, что в конечном итоге вам будет лучше встроить ее в отдельную библиотеку и связать ее с вашим приложением. Это облегчает интеграцию в будущие приложения. Еще одним преимуществом является то, что он поощряет разделение кода. Если вы чувствуете себя довольно уверенно с библиотекой, вы можете связать свой отладочный exe с выпуском сборки библиотеки и получить дополнительную производительность.

Я не могу думать о каких-либо недостатках в создании библиотеки, после первоначальной стоимости ее установки и необходимости иметь дополнительный проект для изменения, если у вас есть какие-то изменения, которые необходимо внести во все ваши проекты. Даже если вы не знаете, как создать библиотеку для iPhone, это хороший повод для изучения.

Простое добавление исходного кода в ваш проект также должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...