Vinculación contra una versión de biblioteca compartida específica en linux
-
05-07-2019 - |
Pregunta
Mi proceso de compilación consiste en el generador Qfake Makefile de Qt y la utilidad de creación típica incluida con Linux.
Mi aplicación consta de unas pocas bibliotecas compartidas y la aplicación principal está vinculada a ellas.
¿Cómo puedo aplicar el esquema típico de versiones de Linux en mis bibliotecas? (Use la versión 2 - > link contra foo.so.2 que apunta a foo.so.2.y.z con un enlace generado por ldconfig).
La respuesta no tiene que ser específica para mi proceso de compilación.
Solución
Su biblioteca debe llamarse libfoo.so.2.yz
, con enlaces simbólicos de libfoo.so.2
y libfoo.so
ambos apuntando a eso La biblioteca debe crearse utilizando -soname libfoo.so.2
en la línea de comandos del vinculador (o -Wl, -soname, libfoo.so.2
en la línea de comandos gcc ).
Espero que ayude!