免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 39243 | 回复: 7

求解啊!!!在线等 [复制链接]

论坛徽章:
0
发表于 2010-11-23 09:31 |显示全部楼层
root@laptop:~# gcc -o button button.o `pkg-config --cflags --libs gtk+-2.0 glib-2.0 libglade-2.0`
button.o: In function `main':
button.c.text+0x19): undefined reference to `gtk'
collect2: ld returned 1 exit status


为什么我加了'pkg-config'在编译时通过,在链接时会出上面的错啊。。。。
求高手解答下,3Q

论坛徽章:
1
黑曼巴
日期:2020-02-27 22:54:26
发表于 2010-11-23 10:43 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2010-11-23 13:33 |显示全部楼层
本帖最后由 gch12vsf 于 2010-11-23 13:35 编辑

回复 2# c/unix


    现在链接通过了,但不知道为什么运行的时候没有界面出来,而是出来下来一些东西:

(button:573: libglade-WARNING **: Expected <glade-interface>.  Got <interface>.

(button:573: libglade-WARNING **: did not finish in PARSER_FINISH state

(button:573: libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed

(button:573: libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed

(button:573: libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed

(button:573: libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed

(button:573: libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed

(button:573: Gtk-CRITICAL **: gtk_widget_show_all: assertion `GTK_IS_WIDGET (widget)' failed

(button:573: libglade-CRITICAL **: glade_xml_signal_autoconnect: assertion `self != NULL' failed

是什么地方出错了呢?

初学还有好多不懂的,望指教!我的程序如下:


  1.    1. #include <gtk-2.0/gtk/gtk.h>
  2.    2. #include <glib-2.0/glib.h>
  3.    3. #include <libglade-2.0/glade/glade.h>
  4.    4.

  5.    5. int main (int argc, char* argv[]) {
  6.    6.   gtk_init(&argc, &argv);
  7.    7.   GladeXML *button;
  8.    8.   button = glade_xml_new("/home/gch/button.glade", NULL, NULL);
  9.    9.   
  10.   10.   GtkWidget *window;
  11.   11.   GtkWidget *button1, *button2, *button3;
  12.   12.   GtkWidget *aboutdialog;
  13.   13.   window = glade_xml_get_widget(button,"window1");
  14.   14.   button1 = glade_xml_get_widget(button,"buntton1");
  15.   15.   button2 = glade_xml_get_widget(button,"buntton2");
  16.   16.   button3 = glade_xml_get_widget(button,"buntton3");
  17.   17.   aboutdialog = glade_xml_get_widget(button,"aboutdialog1");
  18.   18.   
  19.   19.   gtk_widget_show_all(window);
  20.   20.   glade_xml_signal_autoconnect(button);
  21.   21.   gtk_main();
  22.   22.   return 0;
  23.   23. }

  24. 复制代码
复制代码

论坛徽章:
0
发表于 2010-11-23 15:43 |显示全部楼层

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
发表于 2010-11-23 23:02 |显示全部楼层
本帖最后由 nketc 于 2010-11-23 23:06 编辑

初学就用glade了? 建议看看下面的官方教程:http://library.gnome.org/devel/gtk-tutorial/stable/

不过,从错误信息来看貌似 glade_xml_new("/home/gch/button.glade", NULL, NULL); 这个函数返回了NULL,检查一下/home/gch/button.glade存在吗?对吗?

论坛徽章:
0
发表于 2010-11-29 16:51 |显示全部楼层
回复 5# nketc


    button.glade文件对的。。。

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
发表于 2010-11-29 18:51 |显示全部楼层
(button:573: libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed
打印了5次,而你的程序中对button这个变量也正好使用了5次,基本可以确定
glade_xml_new("/home/gch/button.glade", NULL, NULL);
返回了NULL,具体原因,lz再查吧。没用过glade,不好再做猜测了。

论坛徽章:
0
发表于 2014-03-17 16:15 |显示全部楼层
我也遇到了与lz相同的问题,楼主当年是怎么解决的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP