Intenta eliminar el -std=c99
. Esto evita que las macros POSIX se definan en <features.h>
, lo que evita que <unistd.h>
de incluir <getopt.h>
.O incluya getopt.h usted mismo.
Agregar #include <getopt.h>
entre los incluidos.
Tu nube no quita -std=c99
.En su lugar, agregue #define _POSIX_C_SOURCE 2
al principio.
No hay absolutamente ninguna necesidad de cambiar el -std
o para incluir getopt.h
directamente.
Lo correcto si desea utilizar las características del lenguaje C99 (o cualquier otro estándar) junto con las funciones POSIX (como getopt
) es definir _POSIX_C_SOURCE
a la versión correcta (por ejemplo, 200809L
) antes de incluir los respectivos encabezados. Para obtener más detalles, consulte feature_test_macros(7).