我用homebrew下载安装好了gtk+3,然后试着编译了一个网上的示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
static gboolean delete_event(GtkWidget * widget, GdkEvent * event,
gpointer data) {
gtk_main_quit();
return FALSE;
}
int main(int argc, char *argv[]) {
GtkWidget *window;
GtkWidget *label;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "RobberPhex");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
g_signal_connect(window, "delete-event", G_CALLBACK(delete_event), NULL);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
label = gtk_label_new("Hello GTK!");
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show(label);
gtk_widget_show(window);
gtk_main();
return 0;
}
用gcc编译:
gcc testGTK.c -o testGTK pkg-config --cflags --libs gtk+-3.0
结果运行的时候出错了,错误信息是:
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
(testGTK:62547): Gtk-WARNING **: cannot open display:
结果在Google找了好久都没找到为什么会这样 T T
Gtk-WARNING **: cannot open display:
错误了,然后我感觉是因为我安装完gtk+3和相关的组件之后没有重启,所以有的组件还没有被load,于是我重启了一下电脑再编译运行就一切正常了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。