‘RTLD_NEXT’ nicht deklariert

Lesezeit: 1 Minute

Ich versuche, ein C-Programm zu kompilieren, aber ich erhalte den Fehler „RTLD_NEXT“ undeklariert. Ich denke, dies sollte in dlfcn.h definiert werden, das das c-Programm enthält, aber als ich in dlfcn.h nachgesehen habe, gibt es kein RTLD_NEXT.

Wie behebe ich das?

  • Sie sollten uns besser genau sagen, welche Linux-Distro und gcc-Version Sie verwenden, wenn Sie _GNU_SOURCE definieren und keinen Erfolg haben.

    – bmargulies

    22. November 2009 um 2:21 Uhr

  • @bmargulies: Er verwendet Cygwin (siehe stackoverflow.com/questions/1777523/… ), was nicht unterstützt wird RTLD_NEXT (siehe zB listen.zerezo.com/cygwin/msg38882.html )

    – Christoph

    22. November 2009 um 2:41 Uhr

Benutzer-Avatar
bmargulies

Das Problem hier ist das RTLD_NEXT wird nicht durch die definiert Posix-Standard . Die GNU-Leute aktivieren es also nur, wenn Sie es tun #define _GNU_SOURCE oder -D_GNU_SOURCE.

Andere relevante Teile von POSIX sind dlfcn.h und dlsym.h. Interessanterweise die späteren Erwähnungen RTLD_NEXT. Anscheinend sind die GNU-Leute etwas verwirrt darüber, was eine Erweiterung ist und was nicht.

Benutzer-Avatar
Martin

Entsprechend man dlsym es ist #define _GNU_SOURCE (nur ein führender Unterstrich) Vor das dlfcn.h ist enthalten. (RHEL6.1).

Benutzer-Avatar
Benutzer175104

Versuchen #define __GNU_SOURCE als erste Zeile in Ihren Quellen.

  • Es ist eigentlich __USE_GNUnur weil dies jetzt das beste Google-Ergebnis für “RTLD_NEXT” ist.

    – Korrenos

    2. April 2012 um 13:33 Uhr

  • Es ist nur eines führender Unterstrich: #define _GNU_SOURCE.

    – Jonathon Reinhart

    10. September 2014 um 2:08 Uhr

Benutzer-Avatar
abishek bv

Es muss ein Unterstrich vorhanden sein. #define _GNU_SOURCE
Außerdem muss dies Ihre erste Präprozessordirektive sein. Zum Beispiel:

#define _GNU_SOURCE  
#include <stdio.h>

1383000cookie-check‘RTLD_NEXT’ nicht deklariert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy