He revisado un poco, pero la mayoría de las respuestas que he encontrado han sido o se sienten incompletas y me han dejado un poco confundido. Me han dado una biblioteca C que necesito compilar en una biblioteca estática usando XCode 4.3 y luego la uso en un proyecto de aplicación de iOS separado, pero no estoy seguro de cómo proceder. No estoy seguro de si las cuestiones estructura de directorios o no, pero aquí está de todos modos:XCode 4.3: Generación de biblioteca estática
Library -> Section1 -> src -> .c files
-> sec1 -> .h files
-> sec1.h
-> Section2 -> src -> .c files
-> sec2 -> .h files
-> sec2.h
que he estado tratando de trabajar a partir de esto: http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html que estaba vinculado en una pregunta similar a éste a pesar de ser de 2008 está bastante desactualizado, ni podría hacerlo funcionar. También está esta pregunta: Including external C library with Xcode, pero no entra en los detalles de generar realmente la biblioteca, antes de incluirla en un proyecto separado.
Si alguien pudiera dar una respuesta clara y actualizada yo, y muchos otros, lo agradecería muchísimo, estoy seguro. ¡Avíseme si se necesita más información!
Awesome gracias por la respuesta detallada! Me encuentro con una gran cantidad de errores, así que tal vez me perdí algo más, creé una Biblioteca Estática Cocoa Touch de iOS y agregué los archivos, corrigiendo los errores de referencia de los encabezados a medida que aparecían, ¿necesito cambiar el lenguaje de compilación a C? ¿en cualquier sitio? Estoy pensando que no solo lo sé, ¿verdad? –
Xcode (o clang) elige por defecto el idioma según la extensión del archivo. P.ej. .c para C, .cc para C++, .m para ObjC y .mm para ObjC++. – Arne
@KarolyS As Arne (+1) dice que no necesita hacer nada especial, siempre y cuando sus nombres de archivo terminen en .c, pero eso no significa que no tenga algo de trabajo por delante ... Todo depende de para qué plataforma se escribió el código original. Si se tratara de un sabor UNIX, no debería ser tan malo, si era Windows, podría ser más desafiante. Una cosa a tener en cuenta es '# define's que el código puede esperar determinar la plataforma (por ejemplo, POSIX). – idz