[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