GNU/Linux >> Tutoriales Linux >  >> Linux

C++ -fvisibility=oculto -fvisibility-inlines-hidden

-fvisibility=hidden hace que todos sus símbolos estén ocultos por defecto .

Lo que debe hacer entonces es elegir qué funciones desea que sean visibles para los usuarios que se vinculan con su biblioteca y hacerlas visibles marcándolas con un atributo visible.

Por ejemplo

void __attribute__((visibility("default"))) Exported()
{
    // ...
}

Reduce el almacenamiento de información de símbolos innecesaria que es privada para los objetos compartidos.

Considere un objeto compartido que tiene más de 10,000 símbolos (funciones/variables globales), pero solo 100 de ellos eran funciones públicas accesibles para los usuarios de la biblioteca. Podemos hacer que las únicas 100 funciones sean visibles para otros y los 9900 símbolos restantes se mantendrán privados.

También se puede usar para reducir el tamaño del objeto compartido, porque su tabla de reubicación tendrá solo 100 símbolos de información. Usando esta bandera junto con -ffunction-sections -fdata-sections reducirá aún más el tamaño del objeto compartido al tener la definición que es relevante para esos 100 símbolos.


Linux
  1. ¿Por qué una variable es visible en una subcapa?

  2. ¿Qué significan los símbolos mostrados por Ls -f?

  3. Linux:¿las variables de entorno son visibles para los usuarios sin privilegios en Linux?

  4. ¿Windows 10 no está visible en Grub?

  5. Cómo llamar a la función C en C++, función C++ en C (Mezclar C y C++)

Cómo compilar y ejecutar programas C, C++ en Linux

¿Cómo puedo perfilar el código C++ que se ejecuta en Linux?

Detectar Windows o Linux en C, C++

Efecto de usleep(0) en C++ en Linux

Interfaz de línea de comandos de C++

Llame a una función C desde el código C++