mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-03 23:53:55 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!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">
 | 
						|
</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, MacOSX, *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 OSX and pre-OSX) 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>
 |