QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1089|回复: 8

gtk头文件问题

[复制链接]
发表于 2004-10-23 19:00:05 | 显示全部楼层 |阅读模式
编译一个程序出了问题:
系统/usr/include/gtk-1.2 (/usr/include/gtk-2.0)中有gdk, gtk目录含有头文件,现在的程序中头文件中是这样包含gtk.h的:
#include <gtk/gtk.h>
编译提示找不到gtk.h文件。
把上面的include语句改成
#include <gtk-1.2/gtk/gtk.h>
后还是有问题,提示:
/usr/include/gtk-1.2/gtk/gtk.h:31:21: gdk/gdk.h: No such file or directory
/usr/include/gtk-1.2/gtk/gtk.h:32:31: gtk/gtkaccelgroup.h: No such file or directory
等等。

请教大家如何解决这个问题。谢谢!
发表于 2004-10-23 19:39:30 | 显示全部楼层
应该是你编译时的参数问题!
你把它写出来吧!
一般来说不是什么头文件问题!

我也试过! 是参数用得不对!

应该是这样编译:
  
    $gcc -O test test.c `pkg-config gtk-2.0 --cflags --libs`
注意那个 ( ` ) 是  (  ~  )下面那个, 不是 '  !
回复

使用道具 举报

 楼主| 发表于 2004-10-23 19:48:25 | 显示全部楼层
谢谢 leros H。
我对makefile不是很熟悉。
下面我帖上Makefile.
编译: make polyview


SHELL = /bin/sh
srcdir = .
top_srcdir = /usr/local/gtkglarea/
top_builddir = /usr/local/gtkglarea/
LIBTOOL = $(SHELL) $(top_builddir)/libtool
INCLUDES = -I$(top_srcdir)
SOURCES = polyview.c lw.h lw.c trackball.h trackball.c
DEFS =  -DSTDC_HEADERS=1
OBJECTS =  polyview.o lw.o trackball.o
LDADD = $(top_builddir)/gtkgl/libgtkgl.la -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm  -lGLU -lGL -lglut
DEPENDENCIES =  $(top_builddir)/gtkgl/libgtkgl.la
CFLAGS = -g -O2 -I/usr/lib/glib/include -I/usr/X11R6/include
COMPILE = gcc $(DEFS) $(INCLUDES) $(CFLAGS)
CCLD = gcc
LINK = $(LIBTOOL) --mode=link $(CCLD) $(CFLAGS) -o $@
MAKEFILE = Makefile
                                                                                
.c.o:
        $(COMPILE) -c $<
                                                                                
clean:
        -rm -f *.o core *.core

polyview: $(OBJECTS) $(DEPENDENCIES)
        @rm -f polyview
        $(LINK) $(OBJECTS) $(LDADD) $(LIBS)
                                                                                
lw.o: lw.c lw.h /usr/local/gtkglarea/gtkgl/gdkgl.h
trackball.o: trackball.c trackball.h
polyview.o: polyview.c /usr/local/gtkglarea/gtkgl/gtkglarea.h /usr/local/gtkglarea/gtkgl/gdkgl.h trackball.h \
        lw.h

dist: $(SHELL); tar cf - $(SOURCES) $(MAKEFILE) | gzip > polyview.tgz
回复

使用道具 举报

发表于 2004-10-23 20:02:47 | 显示全部楼层
不好意思啊!我也是初学者,
Makefile我也是刚学!
单个编译就是用我上面提到的参数!
像你上面这样的,还是请高手来吧!
发现gtk+方面的中文资料太少了!
回复

使用道具 举报

发表于 2004-10-23 20:13:16 | 显示全部楼层
找不到在 gtk.h中包含的 gdk.h 和 gtkaccelgroup.h。
在 makefile中 改为
INCLUDES = -I$(top_srcdir) -I/usr/include/gtk-1.2
只是为何楼主要用gtk1.2?
回复

使用道具 举报

 楼主| 发表于 2004-10-23 20:38:36 | 显示全部楼层
感谢两位!
呵呵,我也是初学。GTK编程更是没入门。

sagaeon: 我将-I/usr/include/gtk-1.2  include 进去后还是有问题。makefile改来改去,总是编译不过去。
我把源代码放上来:
polyview.tgz
编译的时候好像要先下载gtkglarea。
也贴这里。

请大家帮我看看,很想弄清楚问题所在。谢谢!
回复

使用道具 举报

发表于 2004-10-23 21:01:52 | 显示全部楼层
这次的出错信息一样吗?
回复

使用道具 举报

 楼主| 发表于 2004-10-23 21:05:48 | 显示全部楼层
下面是一部分出错信息。

gcc -DSTDC_HEADERS=1 -I/usr/local/include/gtkgl/ -I/usr/include/gtk-1.2 -g -O2 -I/usr/lib/glib/include -I/usr/X11R6/include  -c polyview.c
In file included from /usr/include/gtk-1.2/gdk/gdk.h:31,
                 from /usr/include/gtk-1.2/gtk/gtk.h:31,
                 from polyview.c:25:
/usr/include/gtk-1.2/gdk/gdktypes.h:33:18: glib.h: No such file or directory
In file included from /usr/include/gtk-1.2/gdk/gdk.h:31,
                 from /usr/include/gtk-1.2/gtk/gtk.h:31,
                 from polyview.c:25:
/usr/include/gtk-1.2/gdk/gdktypes.h:52: error: syntax error before "GdkAtom"
/usr/include/gtk-1.2/gdk/gdktypes.h:52: warning: data definition has no type or storage class
/usr/include/gtk-1.2/gdk/gdktypes.h:98: error: syntax error before "gpointer"
/usr/include/gtk-1.2/gdk/gdktypes.h:103: error: syntax error before "GdkWChar"
回复

使用道具 举报

发表于 2004-10-23 21:34:31 | 显示全部楼层
#include <gtk-1.2/gtk/gtk.h>改为#include <gtk/gtk.h>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 05:26 , Processed in 0.047786 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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