Subject: Re: [boost] [build]Can't build libboost_unit_test_framework-vc90-mt-gdp-1_44.lib with msvc-9 and stlport
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2010-12-11 08:29:40
Joachim Faulhaber wrote:
> Hi Volodya,
> 2010/12/11 Vladimir Prus <vladimir_at_[hidden]>:
>> Joachim Faulhaber wrote:
>>> I have built stlport-5.2 and tried to compile and link projects with
>>> it using msvc-9. Now the linker wants to see
>>> libboost_unit_test_framework-vc90-mt-gdp-1_44.lib instead of
>>> It wants the gd*p* version. So I tried to build it using
>>> bjam toolset=msvc-9.0~stlport5.2 --with-test --build-type=complete stage
>>> This generated new lib files but not the desired one. Could someone
>>> explain what the gd*p* suffix stands for and how I can build this
>>> lib-file with bjam.
>> I am afraid I don't remember what this suffix stands for, nor how can
>> you build it with Boost.Build. However, I recall there's a table somewhere.
>> Ah, right:
>> Note that for that to work, you have to actually specify that you have stlport
>> to Boost.Build. The following doc should help:
> Thank you, that helped a lot :) I am now able to compile and run test
> with bjam using stlport.
> Unfortunately there are still two nasty problems.
> (1) For some but not all the test projects I get the error
> failed to write output file:
> '<path to bin.v2 subdirectory>\<test-target>.obj.rsp'!
> bjam toolset... --clean
> did not help nor manually deleting bin.v2-subdirectories. Seems like
> projects with longer names are affected.
If paths with longer names are affected, you might be running into
a limitations of your OS. Can you try this:
bjam --hash <other options you use now>
You need to use bjam that is included in 1.45, as opposed to whatever
other version you might have.
> (2) When compiling with the ms-workbench,
What is "ms-workbench"?
> the linker now finds the
> right lib-files but I still get an unresolved reference:
> class stlpd_std::basic_string
> <char,class stlpd_std::char_traits<char>,
> class stlpd_std::allocator<char> >
> __cdecl boost::unit_test::ut_detail::normalize_test_case_name
> (class boost::unit_test::basic_cstring<char const >)"
> referenced in function
> "class boost::unit_test::test_case *
> __cdecl boost::unit_test::make_test_case
> (class boost::unit_test::callback0
> <struct boost::unit_test::ut_detail::unused> const &,
> class boost::unit_test::basic_cstring<char const >)"
I suppose your application is not built with stlport
debugging. Try setting _STLP_DEBUG macro to 1, and rebuild
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk