How to fix C error 'RTLD_NEXT undeclared'
Problem:
You have C code like
dlsym_example.c
dlsym(RTLD_NEXT, 'myfunc');but when you try to compile it you see an error message like
dlsym_error.txt
main.c:3:11: error: ‘RTLD_NEXT’ undeclared (first use in this function)
dlsym(RTLD_NEXT, 'myfunc');
^~~~~~~~~Solution
Add
fix_rtld_next.c
#define _GNU_SOURCE
#include <dlfcn.h>at the top of the source file where the error occured.
In order for RTLD_NEXT to be declared, #define _GNU_SOURCE must occur before the first #include statement!
Check out similar posts by category:
C/C++, GCC Errors
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow