[vorbis-dev] Win32 Project Files and SDK Question and Patch

Ingo Ralf Blum ingoralfblum at gmx.de
Mon Jun 18 04:44:56 PDT 2001



The Win32 SDK directory layout seems to need a small update in my eyes. Here's
why:

1. Debug symbols get overwritten

Problem: When the project files in the vorbis/win32 build, all temporary files
of vorbis, vorbisfile and vorbisenc go into Dynamic_Debug (for the dynamic debug
build as an example). The problems arise, when someone wants to debug the code.
Since Visual C++ puts the symbols into the file vc60.pdb during a build, only
the debug symbols of the last built library survive, which is usually
vorbisfile, so it is not possible to step into vorbisenc for example.

Fix: Use separate build directories for each library.

2. Debug and release library (DLL) version have the same name

Problem: When testing your application, the DLLs must be in your path or in the
same directory as the applicaton is, which is often a problem, when you want to
test a debug build and a release build at the same time. I therefore recomment
adding a suffix "d" to the DLL names, just like Microsoft does too e.g.
mfc42.dll for the release build and mfc42d.dll for the debug build.

Fix: append a "d" to the debug build DLLs.

3. The PDB files are not part of the SDK

Problem: So the SDK doesn't contain the debug symbols. This makes an extra debug
version fairly useless, because you can't use the debugger to step into the
Ogg/Vorbis code. So either ship only a release build version or include the
debug symbol files.

Fix: Include the PDB files into the SDK.

4. Vorbis SDK directory layout.

Problem: The Vorbis SDK currently has the directories "include", "debug" and
"release". So at the current point, when using Visual C++, one has to add the
"include" directory to the list of include directories, set either "debug" or
"release" as a lib directory in the linker settings and copy the DLLs by hand to
an appropriate location (Because debug and release DLLs have the same name, you
can't put them into the same location)

Fix: Use the three directories "include", "lib" and "bin", just like on Unix.
Developers then can add the "bin" directory to the path, add the "include"
directory to the include dirs and the "lib" directory to the lib dirs in the
options panel in Visual C++. This way one doesn't have to adjust the paths for
every project, because they are global in the users environment. Since the libs
now differ in they suffix "d", one can easily put the right names into the
linker tab.

I made a patch, which addresses these items and fixes the bugs 24 - 28 (31 and
32 are duplicate, right?). There are patches with two line endings available.
Make sure you use the right one. I made the patch against the current CVS via
"cvs -z 3 diff -N -R -u ogg vorbis win32sdk". You can find it at

ftp://zorannt.sf.net/pub/zorannt/Sources/VorbisWin32-CRLF.diff.bz2
ftp://zorannt.sf.net/pub/zorannt/Sources/VorbisWin32-LF.diff.bz2

Regards Ingo

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list