Boost logo

Boost-Build :

Subject: Re: [Boost-build] Architecture naming in boost libraries' names
From: Vladimir Prus (ghost_at_[hidden])
Date: 2011-06-10 14:14:32


On Sunday, June 05, 2011 21:03:44 Virl wrote:
> Greetings everyone.
> I'm developing project that have to work with two versions of my C++/CLI
> DLL: one for 32-bit Windows, and one for 64-bit. Because it is C++/CLI
> DLL, I have to link dynamically with boost_thread (via #define
> BOOST_THREAD_DYN_LINK) - otherwise "Access violation" bug surfaces:
>
> http://stackoverflow.com/questions/5670248/boost-mutex-c-cli-problems
>
> Dynamical linking with boost_thread solves that problem, but another
> problem arises: I need two versions of boost_thread DLL with different
> names in same directory: one for 32-bit and one for 64 bit. And,
> therefore, I need boost to auto-link with different import libraries for
> these DLLs.
>
> My question is following: what I need to tweak or change in boost build
> system to make it place architecture name or tag into compiled
> libraries' names? I mean, architecture name like "i386" or "amd64" -
> equally and among toolset name, debug build, etc.

It is not supported out of the box. If you feel like hacking a bit, try
locating the function that handles naming of boost libraries. It's
called 'tag' and is either in Jamroot or in boostcpp.jam -- depending
on the version of boost. In the invocations of 'format-name' functions add

        <address-model>

to the list of properties to encode in the name.

HTH,

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build: http://boost.org/boost-build2

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk