'RTLD_NEXT' undeclared

前端 未结 4 717
半阙折子戏
半阙折子戏 2020-12-29 02:29

I\'m trying to compile a C program but I get the error \'RTLD_NEXT\' undeclared. I think this is supposed to be defined in dlfcn.h which the c program includes, but when I

相关标签:
4条回答
  • 2020-12-29 03:08

    Try #define __GNU_SOURCE as first line in your sources.

    0 讨论(0)
  • 2020-12-29 03:14

    According to man dlsym it is #define _GNU_SOURCE (just one leading underscore) before the dlfcn.h is included. (RHEL6.1).

    0 讨论(0)
  • 2020-12-29 03:25

    There must be one underscore. #define _GNU_SOURCE Further, this must be your first preprocessor directive.For example:

    #define _GNU_SOURCE  
    #include <stdio.h>
    
    0 讨论(0)
  • 2020-12-29 03:33

    The issue here is that RTLD_NEXT is not defined by the posix standard . So the GNU people don't enable it unless you #define _GNU_SOURCE or -D_GNU_SOURCE.

    Other relevant pieces of POSIX are dlfcn.h and dlsym.h. Interestingly, the later mentions RTLD_NEXT. Apparently, the GNU people are a bit confused about what is an extension and what is not.

    0 讨论(0)
提交回复
热议问题