Building libsndfile on Win32
There are currently two ways of building libsndfile under Win32:
Using the free
#MinGW
MinGW
tools.
Using Microsoft's
#MSVC
Visual C++
tools.
The free MinGW tools are the preferred option because they are a free (as in
beer and speech), easily obtainable and much closer to the Linux/GCC
environment on which libsndfile is developed.
At some time in the near future I intend to drop support for Microsoft's
tools.
Yes, I know there is now a free (as in beer, but not as in speech) version
of Microsoft's tools, but I believe that the only reason Microsoft released
these free tools was because of the growing popularity of the MinGW tools.
Building libsndfile using MinGW.
The MinGW tools are available from
http://www.mingw.org/
http://www.mingw.org/
.
The files you will need will be named something like:
msysDTK-1.0.1.exe
MSYS-1.0.10.exe
gcc-core-3.3.1-20030804-1.tar.gz
gcc-g++-3.3.1-20030804-1.tar.gz
binutils-2.13.90-20030111-1.tar.gz
mingw-runtime-3.2.tar.gz
w32api-2.5.tar.gz
mingw-utils-0.3.tar.gz
They should be installed using the directions on the MinGW site.
I know the instructions aren't great, but I don't have the time or expertise
to write better ones.
Once you have the tools installed you will get an icon named
MSYS
on
your desktop.
Clicking on that icon will bring up something that looks a little like an
xterm.
Assuming that you have downloaded the
.tar.gz
file into the
C:\temp\
directory you should now be able to execute the following
commands:
tar zxf /c/temp/libsndfile.X.Y.Z.tar.gz
cd libsndfile-X.Y.Z
./configure
make
make check
If there is a failure during compiling or the "make check" stage, you should
check that you are using the current stable version of the MinGW tools, and
the latest version of libsndfile before sending the author a bug report.
Once this is done, anyone interested in using libsndfile in other projects
will be interested in the following files:
libsndfile.dll
libsndfile.lib
libsndfile.def
src/sndfile.h
doc/*.html
Building libsndfile using MSVC++ 6.
For Win32 there is a Microsoft Visual C++ compatible makefile in the
Win32\
directory of the distribution. Building the libsndfile DLL on Win32 involves
the following:
Using WinZip in the GUI, open the libsndfile-1.X.Y.tar.gz file and
extract the files into a directory. The following example assumes
C:\
.
In the directory containing the extracted files, find the file
Win32\Makefile.msvc
and open it in a text editor (ie Notepad or
similar).
Find the line which starts with
MSVCDir
and modify the directory
path to point to the location of MSVC++ on your machine. This allows the
makefile to inform the compiler of the location of the standard header
files. Note that none of the directory names are allowed to have spaces
in them.
Copy the file named
sndfile.h
from the
Win32\
directory to the
src\
directory replacing the one that was originally there.
Copy the file named
config.h
from the
Win32\
directory to the
src\
directory replacing the one that was originally there.
Open a DOS window and cd into the libsndfile-1.X.Y directory.
Make sure that the program
nmake
(which is part of the MSCV++
package) is in a directory which is part of your
PATH
variable.
Type in the command
C:\libsndfile-1.X.Y> nmake -f Win32\Makefile.msvc
and press <return>. You should now see a a large number of compile
commands as libsndfile.dll is built.
If this command fails, that may mean that
nmake
is not in a
directory specified by your
PATH
environment variable.
To check that the built DLL has been compiled correctly type in and run the
command
C:\libsndfile-1.X.Y> nmake -f Win32\Makefile.msvc check
which will compile a set of test programs and run them. If any of the
programs fail the error message will be helpful in debugging the problem.
At the end of the above procedure, you will find the DLL,
libsndfile.dll
and a
LIB file
libsndfile.lib
in the current directory. These two files, along
with the header file
sndfile.h
(in the
Win32\
directory) are all that
you need to copy to your project in order to use libsndfile.
Compile Problems
Compile problems using the above method of building the libsndfile DLL on Win32 should
be emailed to
m&#97;ilt&#111;:&#101;rikd&#64;&#109;eg&#97;-&#110;erd.&#99;om
Erik de Castro Lopo
.
This includes error messages generated during step 7 above.
If you are using some other method to compile the libsndfile DLL you are on your own.
