GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Getopt nicht enthalten? implizite Deklaration der Funktion „getopt“

Versuchen Sie, -std=c99 zu entfernen . Dadurch wird verhindert, dass die POSIX-Makros in <features.h> definiert werden , was <unistd.h> verhindert von einschließlich <getopt.h> .Oder binden Sie selbst getopt.h ein.


Fügen Sie #include <getopt.h> hinzu unter den Includes.


Sie entfernen -std=c99 nicht . Fügen Sie stattdessen #define _POSIX_C_SOURCE 2 hinzu am Anfang.


Es besteht absolut keine Notwendigkeit, den -std zu ändern oder um getopt.h einzuschließen direkt.

Das Richtige, wenn Sie die C99- (oder andere standardisierte) Sprachfunktionen zusammen mit POSIX-Funktionen (wie getopt) verwenden möchten ) soll _POSIX_C_SOURCE definieren auf die richtige Version (z. B. 200809L ) vor dem Einfügen der entsprechenden Header. Weitere Einzelheiten finden Sie unter feature_test_macros(7).


Linux
  1. Subscription-Manager:Befehl nicht gefunden

  2. dnf:Befehl nicht gefunden

  3. id:Befehl nicht gefunden

  4. w:Befehl nicht gefunden

  5. df:Befehl nicht gefunden

Bash-Funktionen

Zirkuläre Namensreferenzen in der Bash-Shell-Funktion, aber nicht in Ksh?

ifrename:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

C:Von der Funktion popen() ausgeführter Linux-Befehl zeigt keine Ergebnisse an

fflush() funktioniert nicht unter Linux