Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I bumped into green, a PDF viewer for the Framebuffer. I would like to compile it, but I am not having much success, although I have installed all the dependencies...

The error I am getting is:

$/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$

Obviously he can't find GdkPixbuf, but this construct is defined in:

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

When I add to the file sdl.c the following line:

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

I am "greeted" with following error:

# 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

My question is then, how do I "convince" gcc to compile this code?

Thanks in advance, Oz

UPDATE:

with:

#include "/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h"
#include "/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h"
#include "/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h"
#include "/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h"

added to sdl.c

I am getting the following errors:

:/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)  $(pkg-config gtk+-2.0 --cflags) -o main.o
cc -Os -Wall -c green.c $(pkg-config poppler-glib --cflags)  $(pkg-config gtk+-2.0 --cflags) -o green.o
cc -Os -Wall -c sdl.c $(pkg-config poppler-glib --cflags) $(sdl-config --cflags) $(pkg-config gtk+-2.0 --cflags) -o sdl.o
sdl.c: In function ‘GetInput’:
sdl.c:101:3: warning: case value ‘37’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:95:3: warning: case value ‘123’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:96:3: warning: case value ‘125’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:104:3: warning: case value ‘126’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c:100:3: warning: case value ‘4294967207’ not in enumerated type ‘SDLKey’ [-Wswitch]
sdl.c: In function ‘RenderPage’:
sdl.c:146:2: warning: implicit declaration of function ‘poppler_page_render_to_pixbuf’ [-Wimplicit-function-declaration]
sdl.c: In function ‘Green_SDL_Main’:
sdl.c:412:21: warning: variable ‘left_y’ set but not used [-Wunused-but-set-variable]
sdl.c:412:9: warning: variable ‘left_x’ set but not used [-Wunused-but-set-variable]
cc main.o green.o sdl.o $(pkg-config poppler-glib --libs) $(sdl-config --libs)  $(pkg-config gtk+-2.0 --cflags) -o green
sdl.o: In function `RenderPage':
sdl.c:(.text+0x23c): undefined reference to `gdk_pixbuf_new'
sdl.c:(.text+0x283): undefined reference to `poppler_page_render_to_pixbuf'
sdl.c:(.text+0x28b): undefined reference to `gdk_pixbuf_get_pixels'
sdl.c:(.text+0x298): undefined reference to `gdk_pixbuf_get_rowstride'
sdl.c:(.text+0x2a4): undefined reference to `gdk_pixbuf_get_n_channels'
collect2: ld returned 1 exit status
make: *** [green] Error 1

My guess is that there is some gcc flag I am missing? or linking?

share|improve this question
    
Is libgdk-pixbuf2.0-dev installed? dpkg -l | grep libgdk-pixbuf2.0-dev. The -dev packages contain header files required to compile software that wants to use it. –  jippie Jun 17 '12 at 9:51
    
@jippie, yes, it is intalled. I already wrote, all the dependencies are installed. But the sources come with a very minimal make file, without configuration script. –  Oz123 Jun 17 '12 at 9:54
    
How about #include "/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h" –  jippie Jun 17 '12 at 10:00
    
@jippie, well, it get's me forwared beyond the error, but i get new ones. Posted them up there... –  Oz123 Jun 17 '12 at 10:09
    
I think it is a search path setting, but I'm unfamiliar with how to change them. –  jippie Jun 17 '12 at 10:38

1 Answer 1

Kind of an answer, not really fully compiling, but I managed to solve the part where sdl.c fails to compile with:

cc -c sdl.c `sdl-config --cflags` `pkg-config poppler-glib --cflags` `pkg-config gtk+-2.0 --cflags` -o sdl.o
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.