Ogg Vorbis libs

Started by
7 comments, last by +AA_970+ 22 years, 5 months ago
Does anyone know what type of apps the different versions of the libs that comes with the Vorbis SDK are used for? For example there's: ogg.lib, ogg_d.lib, ogg_static.lib, ogg_static_d.lib what's the "_d"? Digital Radiation Edited by - +AA_970+ on November 18, 2001 1:01:39 PM
Advertisement
"_d" means debug version
I made a stupid assumption in my original post (I edited it out), I said the libs with "..._static" were static libs - not realizing that the file being a .lib file made it a static library.

Anyway, so the "_d" are for debug libs, now what''s the difference between "ogg.lib" and "ogg_static.lib"?

I tried compliling (linking actually) with the "_static" lib files and got a ton of linking errors with functions being defined in 2 libraries, msvcrt.lib and libc.lib

Digital Radiation
You have to disable default libraries (it''s in the linker options). The "_static" libraries don''t require the DLL, the other ones do. So, if you don''t use a static library, you''ll have to package the DLL with your application.

[Resist Windows XP''s Invasive Production Activation Technology!]
Ok I know what the libs are, but I tried to use the "_static" libs (I disabled default libraries) but I got even more linker errors from the vorbis files as well as my other non vorbis related code, most looked like "unresolved external symbol __imp__qsort"

Digital Radiation
Since the "qsort" function is part of the C standard library, that means you have to link "libc.lib".

[Resist Windows XP''s Invasive Production Activation Technology!]
Linking to libc.lib I get the following errors and warnings:

LINK : warning LNK4049: locally defined symbol "_free" imported
LINK : warning LNK4049: locally defined symbol "_calloc" imported
LINK : warning LNK4049: locally defined symbol "_malloc" imported
LINK : warning LNK4049: locally defined symbol "_realloc" imported
LINK : warning LNK4049: locally defined symbol "_ftell" imported
LINK : warning LNK4049: locally defined symbol "_fclose" imported
LINK : warning LNK4049: locally defined symbol "_fread" imported
LINK : warning LNK4049: locally defined symbol "_fseek" imported
LINK : warning LNK4049: locally defined symbol "_floor" imported
LINK : warning LNK4049: locally defined symbol "_memmove" imported
LINK : warning LNK4049: locally defined symbol "_ldexp" imported
LINK : warning LNK4049: locally defined symbol "_fopen" imported
LINK : warning LNK4049: locally defined symbol "_sprintf" imported
vorbisfile_static.lib(vorbisfile.obj) : error LNK2001: unresolved external symbol __imp___errno
vorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol __imp__strdup
vorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol __imp__toupper
vorbis_static.lib(analysis.obj) : error LNK2001: unresolved external symbol __imp__fprintf
vorbis_static.lib(analysis.obj) : error LNK2001: unresolved external symbol __imp__perror
vorbis_static.lib(floor1.obj) : error LNK2001: unresolved external symbol __imp__qsort
vorbis_static.lib(lsp.obj) : error LNK2001: unresolved external symbol __imp__qsort
ogg_static.lib(framing.obj) : error LNK2001: unresolved external symbol __imp__memchr

Digital Radiation


Edited by - +AA_970+ on November 19, 2001 6:39:13 PM
Well, try simply linking msvcrt.lib instead/also. I've been messing with those compiler settings for too long, I forget that not everyone knows their way around them .

[Resist Windows XP's Invasive Production Activation Technology!]

Edited by - Null and Void on November 19, 2001 9:28:19 PM
Well I''ve been playing around with the linker setting. I have 2 apps, a small app that only plays ogg file and a game I''m working on. To get the small app to work without any problems I have to link to msvcrt.lib and add /nodefaultlib:"libc.lib" to the project options, and uncheck the "Ignore all default libraries" box.

When I setup the same linker setting for the game, it just crashed back to windows, even when I commented out all the ogg vorbis code. I guess it was b/c I was linking to msvcrt.lib, which is supposed to be for dll''s (well that''s what it says in the docs, but it worked with the small app?!).

Oh and with the small app I compiled w/o the "_static" libs (with the default linker settings), and the exe was created, but the program gave a GPF when I tried to play a sound file.

Anyway, I''ll keep playing around with the linker settings maybe I''ll get lucky.

Digital Radiation

This topic is closed to new replies.

Advertisement