Después de la pregunta How do applications resolve to different versions of shared libraries at run time?, me pregunté cómo especificar en el enlace la línea de comando qué versión de la biblioteca usar?¿Cómo especificar la versión de la biblioteca para usar en tiempo de enlace?
Digamos que tengo
libmy.so.1.0
libmy.so.1 -> libmy.so.1.0
libmy.so.2.0
libmy.so.2 -> libmy.so.2.0
libmy.so -> libmy.so.2
La forma habitual para especificar la biblioteca para enlazar con el ejecutable no muestra la versión de usar. Además, es muy probable que uno quiera vincularse con la versión más reciente. Por lo tanto, la línea habitual funciona bien en la mayoría de los casos.
gcc app.o -lmy -o app
¿Cuál es la línea de comandos para vincular app
que debe utilizar la versión 1 de la biblioteca?
Tenga cuidado: lo utiliza enlazador, y lo que se resuelve dynamicaly en tiempo de ejecución (lo que 'ldd app' mostrará) podría no ser el mismo . –