top button
Flag Notify
    Connect to us
      Facebook Login
      Site Registration Why to Join

Facebook Login
Site Registration
Print Preview

Help with programming using libcairo

0 votes
20 views

Im trying to work with the tutorial at http://cairographics.org/tutorial/ but cannot get anything to compile and link. I entered their first example, and all of the cairo_* symbols show up undefined in the link phase.

I am compiling the tutorials simplest example, a hello.c program, using

gcc `pkg-config --cflags --libs cairo`Â  -static hello.c -o hello

and it looks like the librarys empty. However, when I use nm(1) on /usr/lib/i386-linux-gnu/cairo.so
I see those symbols. The nm utility does not seem to work on the .so library, even after following symlinks.

pkg-config --libs cairo
just emits "-lcairo"

Ive tried inserting -L /usr/lib/i36-linux-gnu/ to no avail.

I am not sure what else to try.

posted May 16, 2013 by anonymous

Share this question
Facebook Share Button Twitter Share Button Google+ Share Button LinkedIn Share Button Multiple Social Share Button
Can you post your example program somewhere?

2 Answers

0 votes
#include 

int main (int argc, char *argv[])
{
  cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80);
  cairo_t *cr =  cairo_create (surface);

  cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
  cairo_set_font_size (cr, 32.0);
  cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
  cairo_move_to (cr, 10.0, 50.0);
  cairo_show_text (cr, "Hello, world");

  cairo_destroy (cr);
  cairo_surface_write_to_png (surface, "hello.png");
  cairo_surface_destroy (surface);
  return 0;
}

It compiles okay to a .o file. I cant figure out how to link it. If it matters, Im running Xubuntu 12.04, with all the relevant development packages.

answer May 17, 2013 by anonymous
0 votes

Sorry for delay in replying. Answer is simple. Put the name of the source file before the pkg-config bit opf your command, i.e.,

gcc hello.c `pkg-config --cflags --libs cairo-png` -o hello

I also changed '--libs cairo' to '--libs cairo-png'. Not sure if that is really needed. Also remove the -static option.

answer May 19, 2013 by anonymous

Useful Links with Similar Problem
Contact Us
+91 9880187415
sales@queryhome.net
support@queryhome.net
#470/147, 3rd Floor, 5th Main,
HSR Layout Sector 7,
Bangalore - 560102,
Karnataka INDIA.
QUERY HOME
...