1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <HTML>
- <HEAD>
- <TITLE>
- libsndfile : pkg-config
- </TITLE>
- <META NAME="Author" CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)">
- <LINK REL="stylesheet" HREF="libsndfile.css" TYPE="text/css" MEDIA="all">
- <LINK REL="stylesheet" HREF="print.css" TYPE="text/css" MEDIA="print">
- </HEAD>
- <BODY>
- <BR>
- <H1>libsndfile and pkg-config</H1>
- <P>
- From version 1.0.0 libsndfile has had the ability to read and write files of
- greater than 2 Gig in size on most OSes even if sizeof (long) == 4.
- OSes which support this feature include Linux (2.4 kernel, glibc6) on x86, PPC and
- probably others, Win32, MacOS X, *BSD, Solaris and probably others.
- OSes on 64 bit processors where the default compile environment is LP64 (longs and
- pointers are 64 bit ie Linux on DEC/Compaq/HP Alpha processors) automatically
- support large file access.
- </P>
- <P>
- Other OSes including Linux on 32 bit processors, 32 bit Solaris and others require
- special compiler flags to add large file support.
- This applies to both the compilation of the library itself and the compilation of
- programs which link to the library.
- </P>
- <P>
- Note : People using Win32, MacOS (both OS X and pre-OS X) or *BSD can disregard the
- rest of this document as it does not apply to either of these OSes.
- </P>
- <P>
- The <B>pkg-config</B> program makes finding the correct compiler flag values and
- library location far easier.
- During the installation of libsndfile, a file named <B>sndfile.pc</B> is installed
- in the directory <B>${libdir}/pkgconfig</B> (ie if libsndfile is installed in
- <B>/usr/local/lib</B>, <B>sndfile.pc</B> will be installed in
- <B>/usr/local/lib/pkgconfig/</B>).
- </P>
- <P>
- In order for pkg-config to find sndfile.pc it may be necessary to point the
- environment variable <B>PKG_CONFIG_PATH</B> in the right direction.
- </P>
- <PRE>
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
- </PRE>
-
- <P>
- Then, to compile a C file into an object file, the command would be:
- </P>
- <PRE>
- gcc `pkg-config --cflags sndfile` -c somefile.c
- </PRE>
- <P>
- and to link a number of objects into an executable that links against libsndfile,
- the command would be:
- </P>
- <PRE>
- gcc `pkg-config --libs sndfile` obj1.o obj2.o -o program
- </PRE>
-
- <P>
- Obviously all this can be rolled into a Makefile for easier maintenance.
- </P>
- </BODY>
- </HTML>
|