2010-02-18 9 views
5

De acuerdo con el escáner LSB, mi binario es supuestamente incompatible con una versión específica de Linux porque usa símbolos GBLICXX_3.4.9. Pero cuando traté de ejecutar el binario en esa versión, todo parece funcionar bien ...¿Es confiable el AppChecker base estándar de Linux (LSB)?

¿Puede un binario incluso comenzar en una distribución de Linux si esa distribución no contiene las bibliotecas de tiempo de ejecución que contienen los símbolos necesarios?

+0

¿Cómo se comprobó si ese símbolo realmente estaba disponible en la máquina en la que se realizó la prueba? – nos

Respuesta

2

No sé si he entendido bien la pregunta, pero hasta donde sé, a pesar de que ha compilado su programa con un glibc moderno no significa necesariamente que no podrá ejecutar en un antiguo versión. El siguiente comando Linux:

objdump -T "your exe or lib file" | grep GLIB

le mostrará la versión de glibc los símbolos de su programa pertenecen.

Para más información existe un documento llamado How to write shared libraries de Ulrich Drepper que explica muchas cosas de cómo los símbolos funcionan en Linux no sólo para las bibliotecas compartidas, sino también para los ejecutables

2

Sospecho que te están advirtiendo que se Está utilizando símbolos que, incluso si están disponibles en su sistema de prueba, pueden no estar disponibles en todos los sistemas compatibles con LSB.

+0

Eso es _exactly_ lo que significa la advertencia. +1 –

Cuestiones relacionadas