今天在照着gtk的官方教程做示例的时候,遇到一个问题,就是下面的链接,https://docs.gtk.org/gtk4/getting_started.html ,
1 |
|
官方给的代码,没有说builder.ui这个文件放在哪里,我就放到了和main.c同级的子目录下,结果编译能通过,但是运行时报错。
1 | (main.exe:53272): Gtk-CRITICAL **: 23:14:02.343: gtk_window_set_application: assertion 'GTK_IS_WINDOW (window)' failed |
由于刚开始学,也不太会调试,完全没有头绪。但是编译能通过,觉得代码应该是没问题的。就猜,可能是ui文件路径不对。就试着改了两下,最后试出来了,gtk_builder_add_from_file (builder, "builder.ui", NULL);
这句中的builder.ui应该写这个项目中的相对路径,或是绝对路径。我放到了项目目录的src文件夹下,用相对路径写法,应该写成gtk_builder_add_from_file (builder, "src/builder.ui", NULL);
,再次make run,就不再报错了。
如果这个以后想换个位置也能运行,这个ui文件应该放到另外的一个目录下,到时再研究怎么发布exe吧。