$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] 32/64 library name conflict under Windows?
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2016-03-08 17:44:53
On 8/03/2016 17:18, Rene Rivera wrote:
> 1. Some people don't fancy auto-linking.
I think the only people who don't fancy auto-linking are probably those
who are building on Linux or multi-platform, and so can't make use of
it. Encourage the gcc/clang devs to add support for it. :)
> A) Having file names with "32" *and* "64" on them?
Yes, but rather than just 32 and 64 it should be the actual arch name.
Libraries built for ARM should be readily distinguishable from those for
x86.
> D) Having the current names and placing 32 bit address-model variants in
> "stage/lib32" and 64 bit in "stage/lib64"? (Equivalently for install
> location)
This would be good as well (though again using the arch name, not just
bit level).
In fact the option I would personally prefer would be to do both of
these at once -- embed the arch into the library name, but also build it
to an arch-named output directory.
It's not unreasonable to have different library paths for different
arches, and with auto-linking the difference in library names is not
important when building -- but having different names is important when
distributing them local with an application; imagine a case where both a
32-bit exe and a 64-bit exe are to be installed to the same folder.
Currently this is not possible because the Boost DLLs will clash.
Even where auto-linking is not used, it's just a matter of specifying
the library name in the project file / makefile / whatever with a
placeholder variable for the arch, or conditionally setting the list of
libraries in the same fashion as the library search path. It's not that
hard.