为gtkmm运行以下simple.cc示例
#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;
//Gtk::ApplicationWindow window(app);
return app->run(window);
}我面对以下信息:
(process:9428): GLib-GIO-CRITICAL **: g_application_set_application_id: assertion `application_id == NULL || g_application_id_is_valid (application_id)' failed但是,应用程序不会中断,窗口会生成,直到我ctr+C程序时才会退出。
这条GLib-GIO关键消息的含义是什么?我该怎么做才能抑制这条消息?
发布于 2013-06-03 17:56:02
如果提供的application-id无效,则不会对其进行设置。我不熟悉glibmm位,但是如果您不向g_application_new提供ID,那么根据文档,“GApplication的...some特性(最明显的应用程序唯一性)将被禁用”。
“抑制”它很容易--只需修复它。提供一个有效的应用程序ID,或者根本不提供(传递NULL而不是字符串)。在您的示例中,去掉多余的点("org.gtkmm.examples.base“而不是"org.gtkmm..examples.base")应该可以做到这一点。g_application_id_is_valid文档解释了有效ID的构成,包括“应用程序标识符不能包含连续的'.‘(句点)字符”。
发布于 2018-03-29 10:54:14
我对解决方案中的解释很满意,但是..基于此,只需传递一个空字符串"“即可。然而,"org.gtkmm.example“应该起作用。
https://stackoverflow.com/questions/16890169
复制相似问题