[flac-dev] Windows linking problems

lvqcl lvqcl.mail at gmail.com
Thu Jan 9 06:52:16 PST 2014

>> Was that a problem in the vcproj files shipped with FLAC or your own
>> personal ones? If it was for the ones shipped with FLAC would you be able
>> to provide a patch or even  description of the changes required so that
>> someone on this list can generate a patch?
> It was the project that came with FLAC.  Might not be considered a problem, just a slightly non-standard configuration.
> In the Visual Studio project properties, under C/C++ > Code Generation is the Runtime Library setting.  I think linking to "Multi-threaded DLL" is more standard than just "Multi-threaded" which would copy the Windows libraries into the thing you're building.
> As I've found on other platforms too, linking errors often don't produce messages that are very helpful toward figuring out what's going wrong.

Just a comment for those who doesn't use MS Visual Studio:

"Multi-threaded" runtime library means static linking. All necessary functions
 from MS Visual C++ runtime are statically linked into .dll/.exe file.

"Multi-threaded DLL" runtime library means dynamic linking: a program requires
msvcr80.dll/msvcr90.dll/.../msvcr120.dll to work. Often this means that
a MS Visual C++ 20YY redistributable package must be installed into user's system.

Also: README file, section "Building with MSVC":
"build libogg_static.lib (load win32\libogg_static.sln, change solution configuration
to "Release" and code generation to "Multi-threaded (/MT)", then build)".

So FLAC linking mode was deliberately set to static aka "Multi-threaded".

More information about the flac-dev mailing list