使用没有配置脚本的GTK编译软件

时间:2012-06-17 09:24:28

标签: debian gcc gtk

我碰到了green,一个用于Framebuffer的PDF查看器。我想编译它,但我没有取得多大成功,虽然我已经安装了所有的依赖项......

我得到的错误是:

$/home/Data/Software/green-0.2$ make
cc -D GREEN_SYSCONFIG_FILE=\"/usr/local/etc/green.conf\" -D GREEN_USERCONFIG_FILE=\".green.conf\" -Os -Wall -c main.c $(pkg-config poppler-glib --cflags) -o main.o
cc -Os -Wall -c green.c $(pkg-config poppler-glib --cflags) -o green.o
cc -Os -Wall -c sdl.c $(pkg-config poppler-glib --cflags) $(sdl-config --cflags) -o sdl.o
sdl.c: In function ‘GetInput’:
sdl.c:91:3: warning: case value ‘37’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:85:3: warning: case value ‘123’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:86:3: warning: case value ‘125’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:94:3: warning: case value ‘126’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:90:3: warning: case value ‘4294967207’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c: In function ‘RenderPage’:
sdl.c:120:2: error: unknown type name ‘GdkPixbuf’
sdl.c:120:2: warning: implicit declaration of function ‘gdk_pixbuf_new’ [-Wimplicit-function-declaration]
sdl.c:120:34: error: ‘GDK_COLORSPACE_RGB’ undeclared (first use in this function)
sdl.c:120:34: note: each undeclared identifier is reported only once for each function it appears in
sdl.c:136:2: warning: implicit declaration of function ‘poppler_page_render_to_pixbuf’ [-Wimplicit-function-declaration]
sdl.c:137:2: warning: implicit declaration of function ‘gdk_pixbuf_get_pixels’ [-Wimplicit-function-declaration]
sdl.c:137:9: warning: assignment makes pointer from integer without a cast [enabled by default]
sdl.c:138:2: warning: implicit declaration of function ‘gdk_pixbuf_get_rowstride’ [-Wimplicit-function-declaration]
sdl.c:139:2: warning: implicit declaration of function ‘gdk_pixbuf_get_n_channels’ [-Wimplicit-function-declaration]
sdl.c: In function ‘Green_SDL_Main’:
sdl.c:402:21: warning: variable ‘left_y’ set but not used [-Wunused-but-set-variable]
sdl.c:402:9: warning: variable ‘left_x’ set but not used [-Wunused-but-set-variable]
make: *** [sdl.o] Error 1
$:/home/Data/Software/green-0.2$

显然他找不到GdkPixbuf,但是这个结构定义在:

# ls /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h 
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h

当我向文件sdl.c添加以下行时:

#include <gdk-pixbuf/gdk-pixbuf.h>

我受到以下错误的“问候”:

# make
cc -Os -Wall -c sdl.c $(pkg-config poppler-glib --cflags) $(sdl-config --cflags) -o sdl.o
sdl.c:20:35: fatal error: gdk-pixbuf/gdk-pixbuf.h: No such file or directory
compilation terminated.
make: *** [sdl.o] Error 1

我的问题是,如何“说服”gcc编译此代码?

提前致谢, 盎司

更新: 添加gdk-pixbuf / gdk-pixbuf.h的完整路径产生:

ozdeb@yenitiny:/home/Data/Software/green-0.2$ make
cc -D GREEN_SYSCONFIG_FILE=\"/usr/local/etc/green.conf\" -D GREEN_USERCONFIG_FILE=\".green.conf\" -Os -Wall -c main.c $(pkg-config poppler-glib --cflags) -o main.o
cc -Os -Wall -c green.c $(pkg-config poppler-glib --cflags) -o green.o
cc -Os -Wall -c sdl.c $(pkg-config poppler-glib --cflags) $(sdl-config --cflags) -o sdl.o
sdl.c:21:63: warning: missing terminating " character [enabled by default]
sdl.c:21:63: warning: extra tokens at end of #include directive [enabled by default]
In file included from sdl.c:21:0:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:32:44: fatal error: gdk-pixbuf/gdk-pixbuf-features.h: No such file or directory
compilation terminated.
make: *** [sdl.o] Error 1

1 个答案:

答案 0 :(得分:0)

有点回答,没有完全编译,但我设法解决了sdl.c无法编译的部分:

cc -c sdl.c `sdl-config --cflags` `pkg-config poppler-glib --cflags` `pkg-config gtk+-2.0 --cflags` -o sdl.o