|
|
我写了一个小的即时通信软件,我想模拟linux下面gaim那种托盘效果,就是在系统托盘上出现一个小图标,用于控制。
gtk+2.9版本已经提供了相应的控件,所以很容易实现这个功能。但是我用的是gtk+2.6.4,在该版本中还没有实现这个功能。所以,我只好借助于一个非官方的libegg库来实现这个功能。
我参考了这篇文章:http://bbs.lupaworld.com/htm_data/90/0511/11308.html
文章的大体意思是说,将eggtrayicon.c, eggtrayicon.h这两个文件下载到我的源程序目录中,然后在自己的程序中包含头文件,然后调用其函数。
然后再写好Makefile进行编译,但是编译的时候却出错了,错误就是处在这两个文件之中。
错误代码如下:
gcc -c trayicon.c `pkg-config --cflags gtk+-2.0`
gcc -c eggtrayicon.c `pkg-config --cflags gtk+-2.0`
eggtrayicon.c: In function `egg_tray_icon_class_init':
eggtrayicon.c:127: error: `GETTEXT_PACKAGE' undeclared (first use in this function)
eggtrayicon.c:127: error: (Each undeclared identifier is reported only once
eggtrayicon.c:127: error: for each function it appears in.)
make: *** [eggtrayicon.o] \u9519\u8bef 1
我的makefile代码如下:
CC = gcc
exipmsg:main.o mainwindow.o network.o utility.o treatmess.o recdialog.o popmenu.o trayicon.o eggtrayicon.o
$(CC) -o exipmsg main.o mainwindow.o network.o utility.o treatmess.o recdialog.o popmenu.o trayicon.o `pkg-config --libs gtk+-2.0`
main.o:main.c config.h head.h ipmsg.h mainwindow.h
$(CC) -c main.c `pkg-config --cflags gtk+-2.0`
mainwindow.o:mainwindow.c config.h head.h ipmsg.h mainwindow.h
$(CC) -c mainwindow.c `pkg-config --cflags gtk+-2.0`
network.o:network.c network.h config.h head.h ipmsg.h
$(CC) -c network.c `pkg-config --cflags gtk+-2.0`
utility.o:utility.c utility.h config.h head.h ipmsg.h
$(CC) -c utility.c `pkg-config --cflags gtk+-2.0`
treatmess.o:treatmess.c head.h treatmess.h config.h ipmsg.h recdialog.h network.h
$(CC) -c treatmess.c `pkg-config --cflags gtk+-2.0`
recdialog.o:recdialog.c recdialog.h config.h head.h ipmsg.h
$(CC) -c recdialog.c `pkg-config --cflags gtk+-2.0`
trayicon.o:trayicon.c trayicon.h head.h config.h popmenu.h ipmsg.h mainwindow.h
$(CC) -c trayicon.c `pkg-config --cflags gtk+-2.0`
popmenu.o:popmenu.c popmenu.h config.h head.h ipmsg.h mainwindow.h
$(CC) -c popmenu.c `pkg-config --cflags gtk+-2.0`
eggtrayicon.o:eggtrayicon.c eggtrayicon.h
$(CC) -c eggtrayicon.c `pkg-config --cflags gtk+-2.0`
我不知道这个eggtrayicon还依赖于什么库以及什么头文件?我对gtk+2.0的整体结构还不是很清楚,只知道它是xlib的封装外加glib,pango等功能库。还请多多指点。谢谢!!! |
|