- Compilamos todo lo que necesita nuestro programa
- El ejecutable normal tirará de librerías propias y de sistema.
- Necesitamos las librerías estaticas .a a mano para enlazar contra ellas, esto se consigue normalmente instalando los paquetes "-dev", o generandolas a manubrio.
- Usaremos el comando "gcc -static" y le indicaremos el directorio donde se encuentran y las las librerías necesarias.
Siguiendo con el ejemplo de mostar las librerías dinámicas usadas por rrdtool:
# make
# cd src
# gcc -static -g -O2 -o rrdtool -L/usr/lib/ ./.libs/librrd.a -lfreetype -lpng -lz -lart_lgpl_2 -lm
# ldd rrdtool
not a dynamic executable
Con esto conseguimos que ese único ejecutable funcione por si mismo y sin dependencias en el sistema, ahora podemos copiarlo a un equipo sin las freetype, png, etc y arracará sin problemas.
Tags: static binary enlazar linkar
comentarios:
Publicar un comentario