LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 908|回复: 10

glib的编译问题

[复制链接]
发表于 2003-10-21 13:29:49 | 显示全部楼层 |阅读模式
#include <glib.h>

void surferprint(const gchar * buf)
{
printf("dude,");
printf(buf);
}

void surfermessage(const gchar * buf)
{
printf("dude,ya got a message");
printf(buf);
}

void surferwarning(const gchar * buf)
{
printf("bad news dude");
printf(buf);
}

void surfererror(const gchar * buf)
{
printf("major wipe out,dude");
printf(buf);
}

int main(int argc,char * argv[])
{
if(strcmp(argv[1],"surfer")==0)
{
g_set_error_handler(surfererror);
g_set_warning_handler(surferwarning);
g_set_message_handler(surfermessage);
g_set_print_handler(surferprint);
}
g_print("print");
g_message("message");
g_warning("warning");
g_error("error");
return 1;
}
我用gcc test.c -o test `pkg-config --cflags gtk+-2.0`
执行后提示错误
/tmp/ccsKG2vi.o(.text+0xcd): In function `main':
: undefined reference to `g_set_error_handler'
/tmp/ccsKG2vi.o(.text+0xdd): In function `main':
: undefined reference to `g_set_warning_handler'
/tmp/ccsKG2vi.o(.text+0xed): In function `main':
: undefined reference to `g_set_message_handler'
/tmp/ccsKG2vi.o(.text+0xfd): In function `main':
: undefined reference to `g_set_print_handler'
/tmp/ccsKG2vi.o(.text+0x10d): In function `main':
: undefined reference to `g_print'
/tmp/ccsKG2vi.o(.text+0x121): In function `main':
: undefined reference to `g_log'
/tmp/ccsKG2vi.o(.text+0x135): In function `main':
: undefined reference to `g_log'
/tmp/ccsKG2vi.o(.text+0x149): In function `main':
: undefined reference to `g_log'
collect2: ld returned 1 exit status
不知是什么意思,请指教
发表于 2003-10-21 21:38:32 | 显示全部楼层
不需要link glib的库吗
 楼主| 发表于 2003-10-21 23:07:44 | 显示全部楼层
请问版主,怎么连接,我不太懂
请执教
发表于 2003-10-21 23:12:08 | 显示全部楼层
gcc test.c -o test `pkg-config --cflags --libs glib-2.0`
试试这个,看行不行
 楼主| 发表于 2003-10-21 23:32:15 | 显示全部楼层
还是不行,它提示
/tmp/ccBdDP8x.o(.text+0xcd): In function `main':
: undefined reference to `g_set_error_handler'
/tmp/ccBdDP8x.o(.text+0xdd): In function `main':
: undefined reference to `g_set_warning_handler'
/tmp/ccBdDP8x.o(.text+0xed): In function `main':
: undefined reference to `g_set_message_handler'
collect2: ld returned 1 exit status
发表于 2003-10-22 16:09:24 | 显示全部楼层
请检察你的gtk路径设置是否正确,
发表于 2003-10-22 16:10:19 | 显示全部楼层
多看看/etc/profile, ~/.profile ,/etc/ld.so.conf.
 楼主| 发表于 2003-10-22 17:32:27 | 显示全部楼层
我用gcc test.c -o test `pkg-config --cflags gtk+-2.0`
编译gtk程序时没有错误啊!
发表于 2003-10-22 18:51:58 | 显示全部楼层
我查了一下,glib-2.0确实没有那几个函数,glib-1.2里有,gtk从1.x升到2.0好像变化了很多,你用
gcc test.c -o test `pkg-config --cflags --libs glib-1.2`
试试
 楼主| 发表于 2003-10-22 21:05:55 | 显示全部楼层
谢谢版主,我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表