Brendan Bolles wrote:> Phew! I figured it out. > > The FLAC .vcproj files link against "Multi-threaded" instead of > "Multi-threaded DLL". Made the change and things mostly fell into place.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? Cheers, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
On Jan 8, 2014, at 2:30 PM, Erik de Castro Lopo wrote:> 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. Brendan
>> 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".