我正在尝试运行gtkmm3应用程序,但它不起作用! 我的代码: #包括 #include
int main(void)
{
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create("org.gtkmm.examples.base");
Gtk::Window window;
window.set_default_size(200, 200);
return (app->run(window));
}
错误:
gtkmm的:错误:application.cc:157:INT Gtk :: Application :: run(Gtk :: Window&amp;):断言失败:(m_argc)1
20729 abort(core dumped)./a.out
gdb告诉我“app-&gt; run(window)”失败了。
doc表示有两个构造函数,一个是argc / argv,另一个是没有。
如果我使用第一个构造函数,它可以工作,但由于gtk,我无法向我的程序发送参数。
要编译,我使用:
g++ test.cpp `pkg-config gtkmm-3.0 --cflags --libs`
有什么问题?
答案 0 :(得分:3)
我也有这个问题。我最终使用了下面示例中显示的解决方法。也许其他人可以更好地解决这个问题。
#include <gtkmm.h>
int main(int argc, char *argv[])
{
argc = 1;
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));
}
我是谎言&#39;到Gtk :: Application :: create()告诉它命令行中没有参数。这样您就可以自己处理(或忽略)命令行参数。如果你没有将argc设置为1并且有参数,则应用程序将中止消息&#34;此应用程序无法打开文件&#34;。我希望这会有所帮助。