2009-06-23 7 views
7

Estoy tratando de escribir un cliente SSH para el iPhone, y me gustaría utilizar la biblioteca de código abierto libssh2 para hacerlo. Está escrito en C.Consideraciones para incluir la biblioteca como fuente binaria vs

¿Cómo debería incluir esta biblioteca de C para mi aplicación de iPhone? ¿Debo compilarlo en algún binario que incluyo en mi aplicación, o agrego todo el código fuente a mi proyecto y trato de compilarlo junto con el resto de mi aplicación?

Respuesta

3

estoy interpretting esta pregunta como:

"¿Debo compilar el código de la biblioteca C una vez, e incluyen la biblioteca binaria en mi proyecto O debería incluir toda la fuente y compilarlo cada vez que construyo? mi aplicación? "

Depende. Uno de los proyectos que trabajo uno depende de varias bibliotecas externas. Básicamente, tenemos una regla simple:

  • ¿Crees que tendrás que cambiar el código en la biblioteca C a menudo?

    • Si va a cambiar el código, o actualizar las versiones a menudo, incluya la fuente y compártala con el resto de su proyecto.
    • Si no va a cambiar el código a menudo o en absoluto, puede tener sentido simplemente incluir el binario preconstruido en su proyecto.

Dependiendo del tamaño de la biblioteca, es posible que desee configurarlo como un objetivo distinto en su proyecto, o para aún más flexibilidad, como un sub-proyecto de su proyecto principal.

Si estuviera en su lugar, construiría libssh2 con anticipación e incluiría la biblioteca binaria en mi proyecto de iPhone. Todavía mantendría la fuente libssh2, por supuesto, en caso de que tenga que ser reconstruida en el futuro.

1

La biblioteca de iPhone Three20 tiene una gran facilidad para agregar su biblioteca a su proyecto xcode. Dale una oportunidad.

2

Tengo una aplicación para iPhone que es 90% c. No tuve problemas para agregar fuentes de terceros a mi proyecto y compilar. Estoy usando Lua, zLib y libpng sin modificaciones. También he incluido bibliotecas estándar como unistd y libgen y simplemente funcionan ™

+0

La mayor parte de mi aplicación también es C, excepto donde puedo API Objective-C. Tengo curiosidad sobre tu uso de Lua. ¿Pretendes distribuir a través de iTunes?Lo estoy preguntando porque me encantaría insertar un intérprete, pero me han asustado las prohibiciones de Apple contra cualquier intérprete que Apple no haya proporcionado. ¿Lua está permitido en la tienda de aplicaciones? – Nosredna

+0

Usted es libre de utilizar un lenguaje de scripting, sin embargo, no puede permitir que las personas carguen código arbitrario en él. Para estar seguro, compilo (código duro) los guiones en la aplicación. –

0

Creo que a largo plazo será mejor construirlo en una biblioteca independiente y vincularlo con su aplicación. Esto facilita la integración en futuras aplicaciones. Otro beneficio es que fomenta la separación del código. Si se siente bastante confiado con la biblioteca, puede vincular su archivo de depuración a la versión de lanzamiento de la biblioteca y obtener un rendimiento adicional.

No puedo pensar en ningún inconveniente para crear una biblioteca, después del costo inicial de configuración, y tener un proyecto adicional para modificar si tiene algunos cambios que deben realizarse en todos sus proyectos. Incluso si no sabes cómo hacer una biblioteca para el iPhone, esta es una buena excusa para aprender.

Simplemente agregando la fuente a su proyecto también debería funcionar bien.

Cuestiones relacionadas