Al programar C++ en Unix, ¿cómo vincular la biblioteca de vínculos dinámicos en tiempo de compilación? La segunda pregunta es ¿cómo llamarlo en el programa?
Estás hablando de una llamada explícita manual, no de una llamada implícita estática.
#include
Este archivo de encabezado debe compilarse usando la opción -ldl
La biblioteca de enlaces dinámicos debe agregarse usando: -opción fpic.
------
void *dll=NULL;// Mantiene el identificador de la biblioteca de enlaces dinámicos.
int (*dll_fun)(char*)=NULL;//El puntero apunta a la función que se va a llamar.
dll=dlopen("/lib/XXX.so", RTLD_NOW)//Abra el archivo so.
dll_fun=dlsym(dll, "my_print");//Obtiene el puntero a la función especificada.
dll_fun("Call my_print");
dlclose(dll)
---
Hay dos formas de compilar y enlace:
1.gcc main.c /lib/libstdc++.so -omain
2. Pase la ruta de la biblioteca como parámetro en la línea de comando.