[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