GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo inicializar una biblioteca compartida en Linux

Si desea que su código sea portátil, probablemente debería probar algo como esto:

namespace {
  struct initializer {
    initializer() {
      std::cout << "Loading the library" << std::endl;
    }

    ~initializer() {
      std::cout << "Unloading the library" << std::endl;
    }
  };
  static initializer i;
}

En C++ bajo Linux, las variables globales se construirán automáticamente tan pronto como se cargue la biblioteca. Así que esa es probablemente la forma más fácil de hacerlo.

Si necesita llamar a una función arbitraria cuando se carga la biblioteca, use el atributo constructor para GCC:

__attribute__((constructor)) void foo(void) {
    printf("library loaded!\n");
}

Las funciones de constructor son llamadas por el enlazador dinámico cuando se carga una biblioteca. Así es como se implementa la inicialización global de C++.


Linux
  1. Cómo usar BusyBox en Linux

  2. Cómo crear un directorio compartido para todos los usuarios en Linux

  3. Cómo instalar la biblioteca Ncurses en Linux

  4. ¿Cómo acceder a la carpeta compartida de Windows desde Linux?

  5. Biblioteca compartida dinámica de C++ en Linux

Cómo verificar la memoria compartida de Linux usando el comando ipcs

Cómo enumerar las bibliotecas compartidas utilizadas por los ejecutables en Linux

Cómo instalar la biblioteca Python de PyBrain en Linux

¿Cómo hacer el control de versiones de una biblioteca compartida en Linux?

Cómo agregar el archivo .so a java.library.path en Linux

Cómo hacer que una biblioteca compartida se retrase cargada en Linux