Essayez de supprimer le -std=c99
. Cela empêche les macros POSIX d'être définies dans <features.h>
, ce qui empêche <unistd.h>
en incluant <getopt.h>
.Ou incluez getopt.h vous-même.
Ajouter #include <getopt.h>
parmi les inclus.
Vous ne supprimez pas -std=c99
.À la place, ajoutez #define _POSIX_C_SOURCE 2
au début.
Il n'est absolument pas nécessaire de modifier le -std
ou pour inclure getopt.h
directement.
La bonne chose à faire si vous souhaitez utiliser les fonctionnalités du langage C99 (ou toute autre fonctionnalité standardisée) avec les fonctions POSIX (comme getopt
) est de définir _POSIX_C_SOURCE
à la bonne version (par exemple, 200809L
) avant d'inclure les en-têtes respectifs. Pour plus de détails, voir feature_test_macros(7).