Pregunta

Tengo un pequeño problema: Tengo que abrir un archivo de engarce que tiene la extensión .a. Utilizo Dev-C ++.

¿Fue útil?

Solución

Los archivos son archivos .a ar (algo así como archivos zip) de los archivos de objetos (.o). Se pueden listar los archivos en el archivo usando el programa .a ar:

ar t file.a

y extraer todos los archivos:

ar x file.a

Otros consejos

Los archivos con la extensión .a son bibliotecas estáticas que utilizan archivos de Unix convenciones de nombres. No son mucho más que una colección indexada de código objeto. Usted no tanto abrirlos (a menos que tengas una herramienta como nm o gdb disponibles, los cuales puede hacer las cosas sensibles con una biblioteca si no es necesariamente lo que es posible que desee) como decir la enlazador para usarlos cuando se enlaza. Con la mayoría de los enlazadores, es importante poner todas las bibliotecas (tanto estático como dinámico / compartidos) después de su código de programa principal en la línea de comandos del vinculador y el orden de las bibliotecas también importa.

¿De verdad media que desea Abrir en el archivo, o más bien que desea Enlace con el código?

Dev-C ++ de forma predeterminada se instala con el compilador MinGW / GCC. Si el archivo no se construye específicamente para trabajar con MinGW (por ejemplo, puede ser un archivo de Cygwin o Linux), usted no será capaz de vincularlo a MinGW código generado.

Si el archivo es compatible con una biblioteca MinGW / GCC, entonces simplemente enlace a su código. En Dev-C ++ es necesario agregar el archivo a las opciones del vinculador proyecto, ya sea mediante la adición de la ruta completa al archivo (hay un botón para que en las opciones del proyecto), o colocando el archivo en una trayectoria definida por una opción -L<path> y luego añadiendo una opción -l<archive>. Tenga en cuenta que el archivo de ID se llama libXXX.a, a continuación, la opción -l<archive> será `-lXXX '; el prefijo "lib" y ".a" extensión están implícitos.

Si simplemente desea inspeccionar un archivo para determinar qué símbolos externa que proporciona, a continuación, el nm utilidad se puede utilizar para eso. Si desea extraer los archivos de objetos individuales, a continuación, utilizar el ar , aunque no puedo pensar en una razón buena por qué te gustaría hacer bien.

Trate fstream o fstream file_op("c:\\test.a",ios::in);, y no se olvide de incluir fstream.h .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top