Я добавил библиотеку GTK в свой проект C++, и появляется эта ошибка. Как мне это решить?
Ошибка происходит в этой строке:
line 84: GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_initable_init)
из /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)
Как это исправить?
Либо не используйте -Werror
, либо используйте -Wno-error=c++-compat
в дополнение к вашим текущим флагам компиляции.
В общем, безусловный -Werror
— это плохойидея. Лучше выборочно продвигать предупреждения об ошибках, например, например. -Werror=return-type
. В противном случае ваш проект не сможет скомпилироваться другим компилятором или даже более новой версией текущего компилятора.
В дополнение к предложенному @Ruslan флагу рассмотрите подача отчета об ошибке против GTK. Хотя использование and
в качестве идентификатора допустимо для C, это довольно плохая идея, которой можно легко избежать, изменив имя на and_
или на conjunction
, или что-то еще.
Выполнение первого устранит проблему для ты. Последнее может решить проблему для все...
Не использовать
-Werror
?