static link vs dinamic shared! cuando y porque para novatos:

Cuando uno compila estaticamente es como si el codigo de la libreria que emplea tu proyecto se “incrustara” en el proyecto. Cuando uno compila enlazada dinamicamente, el codigo de la libreria que se enlaza dinamicamente no esta, pero pero pero:estan las marcas a donde “estaran” esos codigos de la libreria,entonces el proyecto “llama a la parte de la libreria sin incrustar el codigo”

QUE ES ESO DE ESTATICAMENTE VS DINAMICA?:

Cuando uno compila estaticamente es como si el codigo de la libreria que emplea tu proyecto se “incrustara” en el proyecto.

Cuando uno compila enlazada dinamicamente, el codigo de la libreria que se enlaza dinamicamente no esta, pero pero pero: estan las marcas a donde “estaran” esos codigos de la libreria, entonces el proyecto “llama a la parte de la libreria sin incrustar el codigo”.

PORQUE ES IMPORTANTE SABERLO SI DESARROLLO?

Esto ocurre en lenguajes muy eficientes como C/C++ especialmente, Vala por ejemplo entra en esta categoria..  Esto viene porque una libreria la libcdio ha pasado en solo 6 meses 4 versiones, y entre ellas todo es incompatible, ni forward ni backguard!

http://git.savannah.gnu.org/cgit/libcdio.git/tree/NEWS como ejemplo libcdio evoluciono 0.83 a 2.0 en menos de 6 meses! y de paso API y ABI break! Es decir el proyecto ha cambiado mucho y esto provoca mucho trabajo a sus dependientes.. causando estres y molestias!

¿que significa esto? creeras que por no existir los CDROM esto no te importa pero estas demasiado equivocado! pro la pequeña, para comenzar se usa ampliamente en lso emuladores de PCSX 1 y 2 adicional en cualqueir proyecto de extraccion de formato CDDB y CD.

Y ESTO QUE TIENE QUE VER SI CODIFICO ENTONCES?

Bueno si tu proyecto compila con la 0.83 ya no compilara sin modificaciones CADA VEZ EN CADA UNA DE ESAS RELEASES, ES DECIR SI SABIAS QUE EN 6 MESES LA 1.0 Y LA 1.1 NO SERVIRIAN DE NADA PARA ESO ESPERABAS LA 2.0 EN VEZ DE PERDER EL TIEMPO; de aqui porque mednafen incluye y compila estaticamente mpcdec y adicional tambien tremor..

Compilar estaticamente da dos beneficios y una contrariedad:

 

PRO de compilar estaticamente:
* el codigo es embebido ejecutable grande pero optimizado
* dominio del codigo y parcheado especifico para la aplicacion

PRO de compilar shared linked:
* la libreria enlazada si falla se actualiza sin recompilar el proyecto entero

MAS INFORMACION he hilo de actividad:

 

https://groups.google.com/forum/m/#!topic/venenuxsarisari/kZy30B-hfzE

Leave a comment