Pregunta

Estoy encontrando que cuando enlazo un ejecutable contra una biblioteca estática (.a), los símbolos de final biblioteca estática a ser exportada por el archivo ejecutable. Me gustaría evitar esto y exportación de nada.

He intentado proporcionar una secuencia de comandos de versión, pero parece hacer ninguna diferencia. El contenido de mi guión versión son los siguientes:

{
    global:
        main;
    local:
        *;
};

¿Hay una manera de no símbolos de exportación de un archivo ejecutable al enlazar en una biblioteca estática? No puedo volver a compilar la biblioteca estática en sí.

¿Fue útil?

Solución

Los ejecutables no exportan símbolos por defecto, y no lo harán a menos que utilice -Wl, - la exportación dinámico. Esto es necesario sólo si usted está dinámicamente la carga de bibliotecas que ellos mismos necesidad de vincular en símbolos en el ejecutable principal (este es un caso común en C ++ si sus bibliotecas contienen clases que los métodos virtuales de anulación en el exe)

Tal vez estás confundiendo los símbolos exportadores con tener símbolos de depuración. se producirán los símbolos de depuración para el beneficio del depurador (si no se pela el exe), pero no están obligados a correr.

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top