Если вы используете clang -Wsome-invalid-option -xc /dev/null
, вы увидите, что clang выдает предупреждение о неизвестной опции -Wsome-invalid-option
.Документы для AX_CHECK_COMPILE_FLAG
указывают, что предупреждения игнорируются.
Необходимо использовать аргумент 4 макроса, чтобы включить -Werror
:
AX_CHECK_COMPILE_FLAG([-Woverride-init], , , [-Werror])
Эта проверка также генерирует переменную кэша,в случае, если вам нужно переопределить его:
ax_cv_cflags__Werror__Woverride_init
Если установлено значение yes
, то компилятор поддерживает флаг, иначе он не поддерживает флаг.Вы можете использовать это и для других флагов:
AX_CHECK_COMPILE_FLAG([-Wformat-truncation], , , [-Werror])
AS_VAR_IF([ax_cv_cflags__Werror__Wformat_truncation], [yes],
,
[AC_FATAL([-Wformat-truncation not supported])])
Общей формой является ax_cv_cflags_{EXTRA}_{FLAG}
для C. Очевидно, что если вы собираетесь использовать AS_VAR_IF
для проверки переменной кэша, тем не менее, вы можететакже используйте второй и / или третий аргументы макроса, и вы можете использовать AC_FATAL
, если требуется флаг компиляции:
AX_CHECK_COMPILE_FLAG([-Wformat-truncation],
,
[AC_FATAL([-Wformat-truncation is required])],
[-Werror])