Ingo Ralf Blum
2001-Jun-18 04:44 UTC
[vorbis-dev] Win32 Project Files and SDK Question and Patch
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@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.