我正在用C语言为一种简单的编程语言编写字节码解释器。
我想将GUI功能添加到语言中。作为第一步,我决定将GTK库的包装器放入解释器中。它作为内置模块公开给用户代码。
我的问题是,GTK是通过控制线程来工作的:一旦调用C函数g_application_run,线程就会进入GTK中一个没完没了的侦听循环。
为什么这是个问题?因为当我们在这个GTK循环中“卡住”时,解释器的字节码解释循环就被冻结了。Psuedo字节码用于演示:
0 SOME OPCODE
1 SOME OTHER OPCODE
2 OPCODE INVOKING GTK WRAPPER FUNCTION <-- GTK inv
背景资料:
我用Mac OSX Yosemite。
我使用gtk+安装了brew install gtk+,并使用export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig修复了错误。
我已经使用make构建了我的程序,但是当我尝试运行它时,我会收到如下警告:
(process:16182): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
问题:我找不到针对这个特定问题的OS解决方案。
到目前为止,我学到的是:
我很难搜索gtkbulider,因为它没有出现在我的Debian repos中,那是Glade的另一个名字吗?
Gtk有3个不同的版本,1,2,3。什么是最好的安装版本,以及Glade的版本,让我们不要忘记这个GtkBuilder,我找不到名字来安装。
我刚刚安装了Glade 3.12.1,它说它丢失了
GladeUI-Message: 2 missing displayable value for GtkWidget::events
GladeUI-Message: No displayable values for property GtkTreeSelection::mode
Glade