Auf einigen unserer Linux-Rechner führt das Kompilieren mit gcc -std=c99 dazu, dass struct ip_mreq verschwindet (enthalten in netinet/in.h)
Gibt es eine andere Schnittstelle, die wir verwenden sollen?
Auf einigen unserer Linux-Rechner führt das Kompilieren mit gcc -std=c99 dazu, dass struct ip_mreq verschwindet (enthalten in netinet/in.h)
Gibt es eine andere Schnittstelle, die wir verwenden sollen?
Versuchen Sie --std=gnu99.
Die Vorgabe für GCC ist '--std=gnu89', was C89 mit GNU-Erweiterungen bedeutet. Wenn Sie '--std=c99' wählen, aktivieren Sie C99, aber deaktivieren die GNU-Erweiterungen. Mit '--std=gnu99' wird sowohl die Unterstützung für C99 als auch für die GNU-Erweiterungen aktiviert, so dass Sie das Beste aus beiden Welten erhalten.
Ich glaube nicht, dass es vor C99 eine andere Schnittstelle gibt. Möglicherweise können Sie dies mit -std=c99
wenn Sie am Anfang Ihrer Quelle(n) Folgendes hinzufügen:
#define __EXTENSIONS__
aber ein besserer Weg ist wahrscheinlich
#define _XOPEN_SOURCE
Bitte beachten Sie, dass ich nicht bestätigt habe.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Was meinen Sie mit "verschwinden"? Können Sie eine tatsächliche Compiler/Linker-Fehlermeldung bereitstellen?
0 Stimmen
Mit cpp kann ich sehen, dass die Struktur definiert ist oder nicht, je nach dem Vorhandensein von -std=c99