COLLADA with static runtime (MT)


I’m trying to build a static library, lets call it libA, which uses the static libcollada14dom20-s.lib, which will be used by another application appA.
The catch is that appA is build using static runtime (the MT) option, and therefore when I use libcollada14dom20-s.lib (which is build with dynamic runtime, MD option) I get lots of linking conflicts like:
2>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fflush already defined in libcmtd.lib(fflush.obj)
When removing those libraries from link I get lots of unresolved symbols.

I guess this happens because when trying to link libcollada14dom20-s.lib and other libraries like libxml2_a.lib, built with dynamic runtime it conflicts with the static runtime of appA.
I was able to build libcollada14dom20-s.lib using static runtime, but still had conflicts because of other libraries (libxml2_a.lib, zlib …)
Does colladadom support static runtime build in any of it’s versions?
Is it at all possible to support that (I was able to download the zlib project and build it with static runtime), but what about the wsock32.lib (isn’t it dynamic windows library?) , and pcre.lib, pcrecpp.lib?


This is an interesting question, since I was unable to build the domTest project with the dom-static library (as of Collada DOM 2.2), which would provide a good start for building applications that need to use a static library.

Has anyone managed to build domTest with dom-static using Visual Studio?

If so, what are the required changes to the build settings?

I switched the project dependency for domTest from dom to dom-static, but that failed right away.

I then changed the input library to libcollada14dom21-sd.lib, and added the other libraries that the DOM DLL builds with, but all that did was generate a huge list of link errors.

EDIT: Nevermind - of course I figured this out shortly after posting. Isn’t it funny how that happens? For the benefit of anyone else who is interested, I have attached the VS2008 project file to this post.