|
Boost : |
Subject: Re: [boost] [Boost.Build] Unexpected MSVC linker error
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2009-10-14 09:40:05
Sergey Zubkovsky wrote:
>> > The bjam's command line options are : --layout=tagged toolset=msvc
>> > The name of the genereated lib file is "boost_date_time-mt-gd.lib".
>> > The error doesn't occur if the "--layout" option is "versioned" or
>> > "system".
>>
>> This error is expected when using the 'tagged' layout. autolink requires
>> that you build Boost using 'versioned' layout. The fact that 'system' works
>> is probably due to the fact that you have already build with 'versioned'
>> layout, so have the libraries already.
>>
>> You can disabled autolinking using BOOST_ALL_NO_LIB macro set to 1.
>>
>> Does this answer your question?
>>
>> - Volodya
>> ________________________________________
>
>
> Thank you, Vladimir, for your answer!
>
>> You can disabled autolinking using BOOST_ALL_NO_LIB macro set to 1.
>
> Yes, this hint solves my problem.
> And, you are right: 'system' is equal to 'tagged' in this context. It was my
> inattention.
> But, "expected" sounds some strange -- I simply change the command line option
> (it's undocumented, unfortunately) and we have really unexpected linker error.
> Maybe a conditional #pragma warning would be very useful in this case?
Unfortunately, when you build your project the compiler does not know how
you have built Boost, so I don't think there's any way to emit warning when
you have autolink disabled, but Boost is built with layout!=versioned.
Or did you have something else in mind?
>
> PS:
> Vladimir, can I write to you in Russian? :)
Well, I do understand Russian, but I generally prefer to keep all public
discussion on public lists. And, you might get prompter reply here, as
quite a number of folks know the answer.
- Volodya
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk