我在我的C ++项目中添加了GTK库,并且出现此错误。 我该如何解决?
此行发生错误:
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)
我该如何解决?
答案 0 :(得分:3)
除了当前的编译标志之外,不要使用-Werror
或使用-Wno-error=c++-compat
。
通常,无条件-Werror
是a bad idea。最好有选择地向错误提示警告,例如-Werror=return-type
。否则,您的项目必定无法使用其他编译器甚至是当前编译器的较新版本进行编译。
答案 1 :(得分:2)
除了添加建议的@Ruslan标志外,请考虑使用filing a bug report against GTK。虽然使用and
作为标识符确实是有效的C,但这是一个非常糟糕的主意,可以通过将名称更改为and_
或conjunction
或其他名称来轻松避免。>
使用前者可以解决 you 的问题。这样做可能会解决每个人 ...
的问题