[eside-ghost] Compilación estática

Alfredo Beaumont alfredo.beaumont en gmail.com
Lun Abr 14 13:26:51 CEST 2008


Al, 2008eko Apiren 14a(e)an, Jon Urionaguena(e)k idatzi zuen:
> Buenas Alfredo,
>
>  > No utiliza autotools ? Para mí que te falta un paso ahí:
>
> Tengo autotools, autogen.sh llama a configure.
>
> He hecho un tres intentonas (por supuesto, make uninstall y make clean y
> eso):
>
> 1)
> # LDFLAGS=-static ./configure
> # make
> # make install
>
> Miro el resultado ->
> #/usr/local/src/ntop_sin_pf# ldd /usr/local/bin/ntop
> ...
> libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0xb7baf000)
>         /lib/ld-linux.so.2 (0xb7fba000)
> ...
>
> Entiendo que error, no debería salir con ldd ¿no? , aunque me ha quedado
> un binario muy mono de 30 veces (2,5 MB) el binario de la paquetería.

Sí, parece que algo falla ahí, no debería estar linkando... a no ser que no 
tengas una versión estática de libpcap (.a) o que no la piller por algún 
motivo.

> 2) # ./configure LDFLAGS="-L/usr/local/lib -lpcap"
> # make
> # make install
>
> Miro el resultado ->
> #/usr/local/src/ntop_sin_pf# ldd /usr/local/bin/ntop
> ...
> libpcap.so.0.8 => /usr/local/lib/libpcap.so.0.8 (0xb758b000)
>         /lib/ld-linux.so.2 (0xb7fa8000)
> ...
>
> Ahora contra la otra (/usr/local/lib), aunque el binario es unas 10
> veces menor ahora (215 KB). Para ejecutar esto cuando "cambie" el
> entorno (sólo cambiará /usr/lib/libpcap...) no debería hacer nada
> especial, ¿no?
>
> 3) Copio /usr/local/lib2/libpcap.so.0.8
> # ./configure LDFLAGS="-L/usr/local/lib2 -lpcap"
> # make
> # make install
>
> Miro el resultado ->
> #/usr/local/src/ntop_sin_pf# ldd /usr/local/bin/ntop
> ...
> libpcap.so.0.8 => /usr/local/lib/libpcap.so.0.8 (0xb758b000)
>         /lib/ld-linux.so.2 (0xb7fa8000)
> ...
>
> Linka con la misma que antes... ¿Por qué no con la de lib2? Mismo tamaño
> (215 KB)

Aunque pongas la opción -L en el configure, no implica que te vaya a coger la 
librería que indiques ahí, sino lo que pongas en el LD_LIBRARY_PATH. Es más, 
si no tienes LD_LIBRARY_PATH, debería cogerte la que tienes en /usr/lib (si 
es que tienes) :?

Saludos
-- 
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi


Más información sobre la lista de distribución eside-ghost