编译安装libglade出错,求大神

nealkillyou 2011-04-22 03:18:25
linux下装linphone提示要求libglade>=2.4.0,编译安装libglad,configure过了,make后提出出错:

2]: Entering directory `/linphonebuild/libglade-2.4.0/glade'
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"libglade\" -I.. -I/usr/include/libxml2 -I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -DGLADE_LIBDIR=\""/usr/lib"\" -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -g -O2 -Wall -std=c9x -MT glade-init.lo -MD -MP -MF ".deps/glade-init.Tpo" -c -o glade-init.lo glade-init.c; \
then mv -f ".deps/glade-init.Tpo" ".deps/glade-init.Plo"; else rm -f ".deps/glade-init.Tpo"; exit 1; fi
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"libglade\" -I.. -I/usr/include/libxml2 -I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -DGLADE_LIBDIR=\"/usr/lib\" -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -g -O2 -Wall -std=c9x -MT glade-init.lo -MD -MP -MF .deps/glade-init.Tpo -c glade-init.c -fPIC -DPIC -o .libs/glade-init.o
In file included from glade-init.c:34:
glade-private.h:33: error: expected specifier-qualifier-list before 'GtkTooltips'
make[2]: *** [glade-init.lo] 错误 1
make[2]: Leaving directory `/linphonebuild/libglade-2.4.0/glade'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/linphonebuild/libglade-2.4.0'
make: *** [all] 错误 2

我看了下libglade-2.4.0/glade文件夹下的glade-init.c文件34行是:
#include "glade-private.h"
然后看glade-private.h文件:
#ifndef GLADE_PRIVATE_H
#define GLADE_PRIVATE_H
#include <stdio.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <glade/glade-xml.h>
#include <glade/glade-parser.h>

struct _GladeXMLPrivate {
GladeInterface *tree; /* the tree for this GladeXML */

GtkTooltips *tooltips; /* if not NULL, holds all tooltip info */ 这就是出错的34行

请问怎么解绝,就算在#include头文件之后,加上:
#define GtkTooltips
也还是会报错。报的错还是那一行,变成了error: expected specifier-qualifier-list before '*' token

求高人解
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nealkillyou 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yong_f 的回复:]

你搜一下看看有没有GtkTooltips结构体,
也有可能是没有GladeInterface结构体
你自己找找吧
[/Quote]
在glade-private.h中好像没有哦 我全发出来吧:
#ifndef GLADE_PRIVATE_H
#define GLADE_PRIVATE_H
#include <stdio.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <glade/glade-xml.h>
#include <glade/glade-parser.h>

struct _GladeXMLPrivate {
GladeInterface *tree; /* the tree for this GladeXML */

GtkTooltips *tooltips; /* if not NULL, holds all tooltip info */

/* hash tables of widgets. The keys are stored as widget data,
* and get freed with those widgets. */
GHashTable *name_hash;

/* hash table of signals. The Data is a GList of GladeSignalData
* structures which get freed when the GladeXML object is
* destroyed */
GHashTable *signals;

/* the current toplevel being built */
GtkWindow *toplevel;

/* the accel group to add accelerators to (not mnemonics) */
GtkAccelGroup *accel_group;

/* these hold the focus and default widgets for a window until they
* get packed into the window -- we can't call gtk_widget_grab_focus
* or grab_default until this occurs */
GtkWidget *focus_widget;
GtkWidget *default_widget;

/* list of GtkWidget properties waiting to be set. (they couldn't
* be set earlier because the value widget hadn't been created
* yet). */
GList *deferred_props;
};

typedef struct _GladeSignalData GladeSignalData;
struct _GladeSignalData {
GObject *signal_object;
char *signal_name;
char *connect_object; /* or NULL if there is none */
gboolean signal_after;
};

typedef struct _GladeDeferredProperty GladeDeferredProperty;
struct _GladeDeferredProperty {
const gchar *target_name;

enum { DEFERRED_PROP, DEFERRED_REL } type;
union {
struct {
GObject *object;
const gchar *prop_name;
} prop;
struct {
AtkRelationSet *relation_set;
AtkRelationType relation_type;
} rel;
} d;
};

typedef enum {
GLADE_DEBUG_PARSER = 1 << 0,
GLADE_DEBUG_BUILD = 1 << 1
} GladeDebugFlag;

extern guint _glade_debug_flags;
#ifdef DEBUG
# define GLADE_NOTE(type, action) G_STMT_START { \
if (_glade_debug_flags & GLADE_DEBUG_##type) \
{ action; }; } G_STMT_END
#else
# define GLADE_NOTE(type, action)
#endif

#endif
yong_f 2011-04-22
  • 打赏
  • 举报
回复
你搜一下看看有没有GtkTooltips结构体,
也有可能是没有GladeInterface结构体
你自己找找吧
nealkillyou 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yong_f 的回复:]

GTK版本低吧
[/Quote]
gtk+-2.14.0 你确定是gtk的问题么
configure的时候是checking for了 gtk+的 不过是符合它要求版本以上的
yong_f 2011-04-22
  • 打赏
  • 举报
回复
GTK版本低吧

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧