Jegyzet magamnak dinamikus library betöltéshez:
anyad.c a library:#include <stdio.h>
int faszom()
{
fprintf(stderr, "faszom anyadba\n");
return 2;
} A parancsok a library buildhez:cc -c -Wall -Wextra -Werror -fpic anyad.c
cc -shared -o anyad.so anyad.o
strip --strip-all anyad.so
rm anyad.o faszteszt.c a program, ami használja az anyad.so library-t:#include <stdio.h>
#include <dlfcn.h>
int main(int argc, char *argv[])
{
void *anyad;
int (*faszom)(void);
anyad = dlopen("./anyad.so", RTLD_NOW);
if (anyad == NULL)
{
fprintf(stderr, "%s\n", dlerror());
return 1;
}
faszom = dlsym(anyad, "faszom");
if (faszom == NULL)
{
fprintf(stderr, "%s\n", dlerror());
return 2;
}
fprintf(stderr, "faszom=%d\n", faszom());
dlclose(anyad);
return 0;
} És végül, ahogy buildeljük a faszteszt programot.cc faszteszt.c -o faszteszt -ldl |