[cairo] Compiling for Cairo development BUGS?
Bill Spitzak
spitzak at gmail.com
Sun Jun 13 11:25:22 PDT 2010
Can somebody please tell me if the "libcairo.la" in cairo-
unsupported.pc is an error that should be fixed?
I have the absolute newest gcc and it does not think a ".la" file is
something that should be on on the link line.
Also an explanation of the "PKG_CONFIG_TOP_BUILD_DIR" would help. Am I
supposed to set this or is the text in the .pc file in error that
causes that to matter?
On Jun 10, 2010, at 1:55 PM, Bill Spitzak wrote:
> On 05/24/2010 07:14 AM, Chris Wilson wrote:
>> On Mon, 24 May 2010 10:10:27 +0200, Arjen Nienhuis<a.g.nienhuis at gmail.com
>> > wrote:
>>> Hi,
>>>
>>> You use this for pixman, cairo and the app that needs cairo:
>>>
>>> PREFIX=$HOME/whatever
>>> PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig ./autogen.sh --prefix=$PREFIX
>>
>> Cairo and pixman should both support uninstalled .pc, so compile
>> pixman as
>> normal and then try for cairo:
>> PKG_CONFIG_PATH=$pixmandir ./autogen.sh
>> and
>> PKG_CONFIG_PATH=$pixmandir:$cairodir ./autogen.sh
>> for your application.
>> -ickle
>
> This allowed both pixman and cairo to compile, but I cannot build
> applications using it and pkg-config. In my setup pixman, cairo, and
> my application are all directories at the same level, and when
> building the application I am in the applications directory.
>
> First it appears PKG_CONFIG_TOP_BUILD_DIR is needed (though that
> seems to be a stupid pkg-config bug, they should default to '.'
> rather than producing a $(xxx) text that will not be substututed if
> you put pkg-config inside `` in a shell.
>
> But then:
>
> PKG_CONFIG_TOP_BUILD_DIR=. PKG_CONFIG_PATH=../cairo:../pixman pkg-
> config --cflags --libs pangocairo
>
> -pthread -I./../cairo/./src -I./../pixman/pixman -I/usr/include/
> pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/
> include/freetype2 -I/usr/include/libpng12 ./../cairo/src/
> libcairo.la -pthread -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -
> lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
>
> This result specifies a file called libcairo.la. The gcc compiler
> does not like that file (it is a "libtool library file").
>
> Patching the file cairo-uninstalled.pc to specify the .libs/
> libcairo.so.2 instead of libcairo.la fixes this but I am not sure if
> that is the solution. I still need to set LD_LIBRARY_PATH to use it,
> I would prefer a solution that forces the full path name into the
> compiled program, and/or makes a .a file be used instead of a .so.
More information about the cairo
mailing list