#c #c #gcc #cmake
#c #c #gcc #cmake
Вопрос:
Я добавил библиотеку GTK в свой проект C , и появляется эта ошибка. Как мне решить это?
Ошибка возникает в этой строке:
line 84: GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_initable_init)
of /usr/include/glib-2.0/gio/ginitable.h
.
Формально,
/usr/include/glib-2.0/gio/ginitable.h:84:58: error: identifier "and" is a special operator name in C [-Werror=c -compat]
GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_initable_init)
Как мне это исправить?
Комментарии:
1. Не использовать
-Werror
?
Ответ №1:
Либо не используйте -Werror
, либо используйте -Wno-error=c -compat
в дополнение к вашим текущим флагам компиляции.
В общем, безусловное -Werror
— плохая идея. Лучше выборочно добавлять предупреждения к ошибкам, например, -Werror=return-type
. В противном случае ваш проект не сможет скомпилироваться с другим компилятором или даже с более новой версией текущего компилятора.
Ответ №2:
В дополнение к добавлению флага, предложенного @Ruslan, рассмотрите возможность отправки отчета об ошибке в GTK. Хотя верно, что использование and
в качестве идентификатора допустимо C, это довольно плохая идея, которой можно легко избежать, изменив имя на and_
или на conjunction
или что-то еще.
Выполнение первого решит проблему для вас. Выполнение последнего может решить проблему для всех…