Behebung von C-Fehler 'RTLD_NEXT undeclared'

English Deutsch

Problem:

Du hast C-Code wie

dlsym_example.c
dlsym(RTLD_NEXT, 'myfunc');

aber wenn du versuchst, es zu kompilieren, siehst du eine Fehlermeldung wie

dlsym_error.txt
main.c:3:11: error: ‘RTLD_NEXT’ undeclared (first use in this function)
     dlsym(RTLD_NEXT, 'myfunc');
           ^~~~~~~~~

Lösung

Add

fix_rtld_next.c
#define _GNU_SOURCE
#include <dlfcn.h>

am Anfang der Quelldatei, wo der Fehler aufgetreten ist.

Damit RTLD_NEXT deklariert wird, muss #define _GNU_SOURCE vor der ersten #include-Anweisung stehen!


Check out similar posts by category: C/C++, GCC Errors