GTKmm3 (GTK+ 3 C++) 编译但运行时抛出 GLib-GIO-CRITICAL 错误

Posted

技术标签:

【中文标题】GTKmm3 (GTK+ 3 C++) 编译但运行时抛出 GLib-GIO-CRITICAL 错误【英文标题】:GTKmm3 (GTK+ 3 C++) compiles but throws GLib-GIO-CRITICAL error when run 【发布时间】:2013-07-14 08:32:15 【问题描述】:

我刚刚开始尝试让 GTK+ 3 与 C++ 一起工作,并尝试编译最简单的 GTKmm Hello-World 示例。

#include <gtkmm.h>

int main(int argc, char *argv[])

  Glib::RefPtr<Gtk::Application> app =
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");

  Gtk::Window window;
  window.set_default_size(200, 200);

  return app->run(window);

编译后:

g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`

没有错误,但是当我运行新编译的应用程序时:

./simple

我收到以下错误:

GLib-GIO-CRITICAL **: g_application_list_actions: assertion `application->priv->is_registered' failed
Segmentation fault (core dumped)

代码已被复制,与https://developer.gnome.org/gtkmm-tutorial/stable/sec-basics-simple-example.html.en 保持一致,因此可能是配置问题,但是我经常将这台机器用于 PyGtk 和 CommandLine C++,没有任何问题。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

这是 gtkmm 中的一个错误(可能由 GTK+ 中的更改触发),已在 gtkmm 中修复: https://git.gnome.org/browse/gtkmm/commit/?id=506cba376c0a0e09217ad7f5d597b6723d7f91a6

也许你可以更新你的 gtkmm 版本。

【讨论】:

刚刚看到这个——刚刚又试了一次,我在做生意!感谢您的提醒!

以上是关于GTKmm3 (GTK+ 3 C++) 编译但运行时抛出 GLib-GIO-CRITICAL 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 gtkmm3 中使用 Gtk::Assistant

使用 Gtk::Viewport (gtkmm3) 直接滚动

gtkmm 3.10.1 中带有 CSS 的 Gtk::Box 样式问题

检查 OpenCV 是不是使用来自 C++ 代码的 GTK 支持进行编译

如何使用本机寡妇 api 移动 Gtk::Window?

gtk(或 gtkmm)3 加宽滚动条以供嵌入式(触摸屏)使用