我刚刚开始尝试让 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++,没有任何问题。
如有任何帮助,我们将不胜感激。
最佳答案
这是 gtkmm 中的错误(可能由 GTK+ 中的更改触发),已在 gtkmm 中修复: https://git.gnome.org/browse/gtkmm/commit/?id=506cba376c0a0e09217ad7f5d597b6723d7f91a6
也许你可以更新你的 gtkmm 版本。
关于c++ - GTKmm3 (GTK+ 3 C++) 编译但在运行时抛出 GLib-GIO-CRITICAL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17637785/