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,于是我重启了一下电脑再编译运行就一切正常了

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

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

报告相同问题?

悬赏问题

  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败