2011-11-22 16 views
23

¿Qué son exactamente los archivos .a (por ejemplo, libcrypto.a) y en qué consisten? ¿Es .m o .o o .h o .c archivos?¿Qué es un archivo .a (como libcrypto.a)?

¿Cómo los entiende IOS SDK/Xcode? Y si incluimos el archivo .a en nuestro proyecto xcode, ¿necesitamos copiar también el archivo de fuentes correspondiente?

+0

Lo siento por eso, im nuevo en esto, y la fuerza sabían si es que existe, gracias para usted :) puntero de – chetan

Respuesta

39

.a archivos son static library archivos. Ellos "contienen" uno o más archivos .o, es decir, código compilado. Para usarlos, necesita (con frecuencia) los archivos de encabezado (.h) que corresponden al código compilado, pero no necesita el código fuente (.c, .m).

Los archivos .a se producen con la utilidad ar, y el enlazador (ld) que es (por lo general) invocado por el compilador sabe su formato y cómo extraer las piezas relevantes de código del archivo y en su ejecutable.

+0

Gracias por su pronta respuesta Mat, que han creado una biblioteca estática .a presentar un proyecto de ejemplo y copiado el encabezado y el archivo .a en otro proyecto. Pero cuando intento acceder a los métodos en modo de depuración, el control apunta a los métodos del archivo .m correspondiente que he creado .a file. por qué está abriendo el archivo .m, si agregué solo el archivo .h y .a. – chetan

+0

La información de depuración contiene nombres de archivos y números de línea. Esta información está incluida en los archivos '.o' para que los depuradores puedan mostrarle qué código fuente generó las instrucciones que está viendo. Sin eso, solo verías ensamblaje que no es tan útil. Su IDE puede asignar esa información de depuración a los archivos de código fuente reales si tiene suficiente información. – Mat

+0

Gracias, ¿Entonces usted dice que, solo en modo de depuración, el IDE apunta al archivo de origen y no en tiempo de ejecución debido al archivo .o? Si elimino el proyecto de su ubicación, en modo de depuración, arroja un error que dice "xcode no pudo ubicar el archivo fuente" y se rompe allí. Pero cuando voy para el tiempo de ejecución, no hay ningún error – chetan