未申报「RTLD_NEXT」

我试图编译一个C程序,但我得到了未声明的错误“RTLD_NEXT”。 我认为这应该在c程序包含的dlfcn.h中定义,但是当我在dlfcn.h里面查看时,没有RTLD_NEXT。

我该如何解决?

Solutions Collecting From Web of "未申报「RTLD_NEXT」"

这里的问题是RTLD_NEXT没有被posix标准定义。 因此,除非您#define _GNU_SOURCE-D_GNU_SOURCE ,否则GNU人员不会启用它。

其他相关的POSIX部分是dlfcn.h和dlsym.h 。 有趣的是,后面提到了RTLD_NEXT 。 显然,GNU的人对什么是扩展和什么是扩展有点困惑。

根据man dlsym包含dlfcn.h 之前 ,它是#define _GNU_SOURCE (只是一个主要的下划线)。 (RHEL6.1)。

尝试#define __GNU_SOURCE作为源代码中的第一行。