Linux - Ver libreria estatica en linux

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 6 puestos en Linux (en relación al último mes)
Gráfica de Linux

Ver libreria estatica en linux

Publicado por Enrique Gabriel (2 intervenciones) el 19/07/2017 16:48:57
Hola a todos.

Para una compilacion en gcc que no encuentra la referencia a una función que supongo esta en alguna libreria estática (archivo.a) , ¿hay algún programa que pueda listar las funciones incorporadas en archivos de libreria, o por lo menos los archivos objeto que contiene?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ver libreria estatica en linux

Publicado por Tom (482 intervenciones) el 19/07/2017 17:59:21
Generalmente gcc da alguna indicación, al menos para las librerías .so.
Si las librerías que usas son "publicas" buscando en google el nombre de la función te dará pistas.
Si no, tendrás que rebuscar por los directorios de tu sistema.
De todos modos, para listar las funciones en archivos .a yo uso nm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/usr/lib64$ nm libz.a
 
adler32.o:
                 U _GLOBAL_OFFSET_TABLE_
00000000000004b0 T adler32
00000000000005c0 T adler32_combine
00000000000004c0 T adler32_combine64
00000000000004c0 t adler32_combine64.localalias.1
0000000000000000 T adler32_z
 
crc32.o:
                 U _GLOBAL_OFFSET_TABLE_
0000000000000490 T crc32
00000000000004a0 T crc32_combine
00000000000004b0 T crc32_combine64
0000000000000000 t crc32_combine_
00000000000001b0 T crc32_z
...
...

Los símbolos marcados con 'T' son los que están definidos en la librería.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 6 puestos en Linux (en relación al último mes)
Gráfica de Linux

Ver libreria estatica en linux

Publicado por Enrique (2 intervenciones) el 20/07/2017 14:04:11
Muchas gracias Tom.
Es lo que necesitaba.
Con nm encontre la librería que contiene la funcion que el linker informaba error.

Estuve googleando mucho tiempo antes de preguntar en este foro y solo encontre tutoriales de como crear las librerias o como usarlas, pero nada para listar el contenido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ver libreria estatica en linux

Publicado por Tom (482 intervenciones) el 20/07/2017 14:59:10
Pues "por culturilla" quiero agregar que nm funciona para cualquier objeto, aunque dependiendo de como se haya compilado (o si se le ha hecho 'strip') puede que no se muestren algunos símbolos (o que no se muestre ninguno).
Además, un archivo .a es parecido a un .tar: Una colección de ficheros que se maneja con el comando 'ar'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar