cxzlzy 2015-07-18 07:25 采纳率: 80%
浏览 1890
已采纳

mac下编译GTK+3.0的“Hello,World”程序出错

我用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

  • 写回答

1条回答 默认 最新

  • cxzlzy 2015-07-18 14:39
    关注

    我去网上找了一下load了d-bus然后只剩下

     Gtk-WARNING **: cannot open display:
    

    错误了,然后我感觉是因为我安装完gtk+3和相关的组件之后没有重启,所以有的组件还没有被load,于是我重启了一下电脑再编译运行就一切正常了

    抱歉打扰大家的时间线了,希望之后遇到和我一样问题的同学可以借鉴一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗