GNU/Linux >> Znalost Linux >  >> Linux

Getopt není součástí dodávky? implicitní deklarace funkce „getopt“

Zkuste odstranit -std=c99 . To zabrání tomu, aby byla makra POSIX definována v <features.h> , což zabraňuje <unistd.h> od včetně <getopt.h> .Nebo zahrňte getopt.h sami.


Přidejte #include <getopt.h> mezi zahrnuty.


-std=c99 z cloudu neodstraníte .Místo toho přidejte #define _POSIX_C_SOURCE 2 na začátku.


Není absolutně potřeba měnit -std nebo zahrnout getopt.h přímo.

Správná věc, kterou musíte udělat, pokud chcete používat funkce jazyka C99 (nebo jakékoli jiné standardizované) funkce spolu s funkcemi POSIX (jako getopt ) je definovat _POSIX_C_SOURCE na správnou verzi (např. 200809L ) před zahrnutím příslušných záhlaví. Další podrobnosti viz feature_test_macros(7).


Linux
  1. Proč není CD program?

  2. Kruhové odkazy na názvy ve funkci Bash Shell, ale ne v Ksh?

  3. ifrename:příkaz nenalezen

  1. nc:příkaz nenalezen

  2. rm:příkaz nenalezen

  3. mv:příkaz nenalezen

  1. ln:příkaz nenalezen

  2. C:Příkaz Linux spuštěný funkcí popen() nezobrazuje výsledky

  3. fflush() v Linuxu nefunguje