Boost logo

Boost :

Subject: Re: [boost] 32/64 library name conflict under Windows?
From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2016-03-07 23:18:45


On Fri, Mar 4, 2016 at 12:31 PM, Peter Dimov <lists_at_[hidden]> wrote:

> I remember that we discussed this problem before:
>
> C:\Projects\boost-git\boost>b2 --with-system toolset=msvc-10.0
> address-model=32,64
>
> [...]
>
> error: Name clash for '<pstage\lib>libboost_system-vc100-mt-gd-1_61.lib'
> error:
> error: Tried to build the target twice, with property sets having
> error: these incompatible properties:
> error:
> error: - <address-model>32
> error: - <address-model>64
> error:
> error: Please make sure to have consistent requirements for these
> error: properties everywhere in your project, especially for install
> error: targets.
>
> but don't remember what we concluded. Will we support building both 32 and
> 64 bit libraries under Windows? At present if I want to have an IDE project
> that has both Win32 and x64 configurations I need to build the 32 bit
> libraries, move them out of stage/lib somewhere, then build the 64 bit
> libraries, then move them out of stage/lib to somewhere else, and set my
> library directories in the IDE accordingly.
>
> It would be much more convenient if 32/64 were encoded into the name, so
> that I can leave my library path to point at stage/lib and rely on autolink
> to choose the right .lib file automatically, like it works today for the
> other options (debug/release, static/dynamic runtime).
>

1. Some people don't fancy auto-linking.

2. People responding with "+N".. Which of the following would you prefer?
And give rationale for your preference, and optionally give rationales for
not preferring others:

A) Having file names with "32" *and* "64" on them?

B) Having current names indicate 32 and adding "64" to file names otherwise?

C) Having current names indicate the "default" system address-model and add
"32" or "64" to indicate the non-default?

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)

E) Having the current names and placing 32 bit address-model variants in
"stage/lib" and 64 bit in "stage/lib64"? (Equivalently for install location)

F) Having the current names and placing the "default" system address-model
variants in "stage/lib" and the non-default in "stage/lib32" or
"stage/lib64"? (Equivalently for install location)

-- 
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net
-- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk