[odb-users] Windows builds..

Andrew Cunningham andrew at a-cunningham.com
Mon Dec 5 12:12:28 EST 2016

Hi Boris,
I take you your points.
But given the vagaries of Windows compilers , their various
incompatibilities and resultant "DLL-hell" , I think BOOST do it the right
way by spelling out "ad-nauseaum" how a .DLL was built.
e.g. boost_atomic-vc140-mt-1_62.dll

But I gather, build2 will let us do that, or any such combination, as well.


On Mon, Dec 5, 2016 at 7:17 AM, Boris Kolpackov <boris at codesynthesis.com>

> Hi Andrew,
> Andrew Cunningham <andrew at a-cunningham.com> writes:
> > The various windows builds create DLLS in bin64 such as
> > odb-2.5-vc12.dll
> > but the import libraries in lib64 end up being
> > odb.lib
> >
> > That creates all sorts of problems when trying to use multiple versions
> of
> > Visual Studio and the same ODB version.
> Well, I don't see how this by itself creates problems. Perhaps what's
> creating problems it the fact that "VC++ Directories" are shared among
> various Visual Studio versions (one of those "brilliant" ideas from MS)?
> If that's the case, then the way we work around this is with this trick:
> we include the VC version into the "VC++ Directories" paths via a macro.
> For example:
> C:\projects\libodb-vc$(VisualStudioVersion)\lib
> Then we name our directories like so:
> libodb-vc11.0
> libodb-vc12.0
> libodb-vc14.0
> ...
> > I would prefer the import libraries be (say) odb-2.5-vc12.lib
> This will make migrating VC projects (tests, examples, etc) even more
> painful.
> But, in any case, all this .vc(x)proj stuff is going to EOL'ed soon
> and once we use build2 you will be able to name your libraries however
> you like, for example:
> b config.bin.lib.suffix=-andrews-vc12
> Boris

More information about the odb-users mailing list