Если вы действительно имели в виду TRUE
и FALSE
, то в /usr/include/glib-2.0/glib/gmacros.h есть
#ifndef FALSE
#define FALSE (0)
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif
Если вы имели в виду что-то другое, то вам нужно более точно указать, что вы подразумеваете под gnome-libs
.
Макросы, которых вам не хватает, не определены в GTK ничем, а Elv*
булевы, похоже, являются перечисляемым типом в Elvis Text Editor:
enum {ElvFalse, ElvTrue} ELVBOOL;
Я подозреваю, что этот код был заимствован из какой-то другой кодовой базы и потерял свои заголовки. Неудивительно, что это делает ElvFalse
эквивалентным 0
и ElvTrue
равным 1
(по крайней мере, в Южном полушарии, я слышал, что на севере все наоборот).
Учитывая прототип:
void gtk_menu_item_configure(GtkMenuItem *menu_item,
gint show_toggle_indicator,
gint show_submenu_indicator);
значения 0 и 1 кажутся довольно хорошими предположениями о значении констант.
Из elvis-2.2_0/doc/bugs.txt:
/ BOOLEAN и тип данных Elvis может конфликтовать со стандартным. Измените его имя, а также имена значений True и False.
Где /
- это флаг автора "что я считаю, что проблема
была решена". Что странно, когда в коде появляется
... ElvFalse,False)
/
... ElvFalse,False)
. Но еще больше проблем в guignome/README.gnome (от октября 2003 года):
Расширение Gnome/GTK+ GUI для Elvis пишет Дэвид Алан Гилберт (David Alan Gilbert). (elvis@treblig.org). Оно находится на стадии разработки!
Я не могу собрать Elvis 2.2 на Unbuntu Maverick из-за других дефектов, чем вы сообщаете (в guix11
), и последние репозитории Debian/Ubuntu не содержат Gnome версию elvis, только X11. Поскольку главная страница Elvis последний раз обновлялась два года назад, я сомневаюсь, что версия для Gnome когда-либо работала или работает с современным Gnome.
Тем не менее, нет никакого вреда в попытке
#define False (0)
#define True (!False)
, но я не уверен, что это заведет вас далеко.
В моем случае это было вызвано тем, что мой оконный менеджер не предоставил демон уведомлений. Как видно из сообщения об ошибке, служба org.freedesktop.Notifications
на шине d -не предоставляется. В моем случае служба была установлена, но не запущена.
Вы можете проверить, не в этом ли проблема, запустив терминал. notify-send "test"
Если появляется всплывающее -уведомление, это не та проблема, с которой вы столкнулись. Если команда зависает, то это та же проблема.
Решение состоит в том, чтобы запустить программу, предоставляющую службу org.freedesktop.Notifications
. Есть много программ, которые это делают, и список на archwiki . В моем случае у меня была установлена служба уведомлений dunst
, но она не работала. Добавление его в автозапуск приложений моего оконного менеджера решило проблему.