Приложение gtk, ошибка при открытии UI файла: Ошибка сегментирования

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
жучара
Сообщения: 1088
ОС: астралинукс

Приложение gtk, ошибка при открытии UI файла: Ошибка сегментирования

Сообщение жучара »

Друзья! Вот вырожденный код:

Код: Выделить всё

/* example-4.c */
#include <gtk/gtk.h>

int main ()
{
  GtkBuilder *builder = gtk_builder_new_from_file ("builder.ui");
  return 0;
}
Информация по gtk_builder_new_from_file
Файл builder.ui
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object id="window" class="GtkWindow">
<property name="title">Grid</property>
<child>
<object id="grid" class="GtkGrid">
<child>
<object id="button1" class="GtkButton">
<property name="label">Button 1</property>
<layout>
<property name="column">0</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object id="button2" class="GtkButton">
<property name="label">Button 2</property>
<layout>
<property name="column">1</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object id="quit" class="GtkButton">
<property name="label">Quit</property>
<layout>
<property name="column">0</property>
<property name="row">1</property>
<property name="column-span">2</property>
</layout>
</object>
</child>
</object>
</child>
</object>
</interface>
(взят отсюда)

Компилит, но не работает:

Shell

$ gcc $( pkg-config --cflags gtk4 ) -o example-4 example-4.c $( pkg-config --libs gtk4 )
$ ./example-4
Ошибка сегментирования
$
...Впрочем, не работает оно и с вырожденным builder.ui, таким, например:
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object id="window" class="GtkWindow">
</object>
</interface>
Даже окошка несчастного добавить нельзя. ЧЯДНТ? Спасибо, кто откликнется. Debian 12. Кодировка верна.
Я просто читаю маны.
Спасибо сказали:
text
Сообщения: 8

Re: Приложение gtk, ошибка при открытии UI файла: Ошибка сегментирования

Сообщение text »

Для инициализации объектов сначала нужен вызов gtk_init();
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 1088
ОС: астралинукс

Re: Приложение gtk, ошибка при открытии UI файла: Ошибка сегментирования

Сообщение жучара »

text писал(а):
06.05.2025 12:10
Для инициализации объектов сначала нужен вызов gtk_init();
странно, я черпаю вдохновение отсюда, а там ничего такого нет. Но помогло.
Я просто читаю маны.
Спасибо сказали: