My current c++ application is compiled by calling "make", and invoked by calling "./fileName.bin".
Now, I want to add the functionality of cairo library into the application. Note that the the program written specifically
for testing cairo (outside my application) is compiled by
"g++ -o fileX $(pkg-config --cflags --libs cairo) fileX.cpp"
and invoked by "./fileX".
Now, I dont know how to link cairo library to my application that is invoked by calling make.
I added the following into my application:

#include <cairo.h>
#include <cairo-pdf.h>
int myPDFdrawing() {
  cairo_surface_t *surface;
  cairo_t *cr;

  //
  

  //
  surface = cairo_pdf_surface_create("pics/mojFajl.pdf", 500, 648);
  cr = cairo_create(surface);

  cairo_set_source_rgb(cr, 0, 0, 0);
  cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_NORMAL,
      CAIRO_FONT_WEIGHT_NORMAL);
  cairo_set_font_size (cr, 40.0);
  
  cairo_translate (cr, 0.0, 150.0);

  cairo_move_to(cr, 100.0, 500.0);
  cairo_show_text(cr, "Disziplin ist Macht.");
  
  cairo_move_to (cr, -100, -110.5);
  cairo_line_to (cr, -180, -130.5);
  cairo_set_line_width (cr, .05);
  cairo_stroke (cr);
  cairo_show_page(cr);

  cairo_surface_destroy(surface);
  cairo_destroy(cr);

  return 0;

}

I tried invoking "make $(pkg-config --cflags --libs cairo)", but this is not appropriate.
I would appreciate your help on this.
Thanks

Recommended Answers

All 5 Replies

This is the content of my Makefile:

STXXL_ROOT      ?= /home/laptop/stxxl-1.2.1
STXXL_CONFIG    ?= stxxl.mk
include $(STXXL_ROOT)/$(STXXL_CONFIG)

# use the variables from stxxl.mk
CXX              = $(STXXL_CXX)
CPPFLAGS        += $(STXXL_CPPFLAGS)

# add your own optimization, warning, debug, ... flags
# (these are *not* set in stxxl.mk)
CPPFLAGS        += -O3 -Wall -g -DFOO=BAR

# build your application
# (my_example.o is generated from my_example.cpp automatically)
fileA.bin: fileA.o
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) fileA.o -o $@ $(STXXL_LDLIBS)

I guess it should be adapted somehow?
Thanks

IF you use CodeLite IDE it have functionality to export Makefiles for your program.
Else see this

I would recommend you switch to cmake instead, but to fix your makefile. Add the "$(pkg-config --cflags --libs cairo)" to CPPFLAGS, like this:

CPPFLAGS += $(pkg-config --cflags --libs cairo)

I'm pretty sure that or a variation of it should do the job, but I'm not an expert on makefiles.

A second vote for cmake!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.