GtkAda Simple Window: 找不到 pixbuf 加载程序或 mime 数据库

GtkAda Simple Window: pixbuf loaders or the mime database could not be found

使用 Gnat-2020-Community 版本和 Gtkada 我尝试在 Debian 10.2 上创建一个简单的图形用户界面 (x86_64 GNU/Linux)。

该项目基于“从模板创建项目”对话框中的 GtkAda 的“简单 window”项目(我假设代码 运行 开箱即用)。

 --  Initialize GtkAda.
   Gtk.Main.Init;

   --  Create a window with a size of 400x400
   Gtk_New (Win);
   Win.Set_Default_Size (400, 400);

   --  Create a box to organize vertically the contents of the window
   Gtk_New_Vbox (Box);
   Win.Add (Box);

   --  Add a label
   Gtk_New (Label, "Hello world.");
   Box.Add (Label);

   -- Stop the Gtk process when closing the window
   Win.On_Delete_Event (Delete_Event_Cb'Unrestricted_Access);

   --  Show the window and present it
   Win.Show_All;
   Win.Present;

   --  Start the Gtk+ main loop
   Gtk.Main.Main;

除了将 'with "gtkada";' 调整为项目 gpr 文件中 gtkada.gpr 文件的正确路径外,没有应用任何更改。

正确检测到 GtkAda。该项目在静态和可重定位配置中均已成功构建。

但是,程序无法运行成功,而是在执行Win.Show_All;时生成此终端输出:

/home/user/workspace_ada/Simple_Window/Simple_Window/obj/main
Fontconfig warning: "/home/user/workspace_ada/gnat-2020/etc/fonts/fonts.conf", line 86: unknown element "blank"

(main:4012): Gtk-WARNING **: 21:38:39.988: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /home/user/workspace_ada/gnat-2020/share/icons/Adwaita/16x16/status/image-missing.png: Format der Bilddatei unbekannt (gdk-pixbuf-error-quark, 3)

raised PROGRAM_ERROR : unhandled signal
[2020-08-20 21:38:40] process exited with status 1, elapsed time: 00.30s

我已经按照 Gtkada 的要求安装了以下软件包:libglib*libgtk*

另外我安装了libx11*libncurses*,因为我感觉好像会有用。

我在 Whosebug 上搜索了互联网和 Gtkada 社区,但没有成功。

因此,我想向 Whosebug 社区的 Ada 专家和大师们请教一些想法或我所缺少的东西。

非常感谢。最好的问候。

问题:不能运行直接在Linux上用GtkAda写的程序。在启动程序之前,您必须始终使用脚本 gtkada-env.sh 或等效脚本来为与 GtkAda 捆绑在一起的 Gtk 设置正确的路径和环境变量。

如果您想查看启动脚本的外观,这里有一个小示例:https://github.com/thindil/hunter/blob/master/hunter.sh

如果您打算使用 gtkada-env.sh 脚本,您只需 运行 一次,因为它会创建一个新的默认值 shell,并具有适当的路径和变量设置