Boost logo

Boost :

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
>>> libboost_unit_test_framework-vc90-mt-gd-1_44.lib
>>>
>>> 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:
>>
>> http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html#library-naming
>>
>> Note that for that to work, you have to actually specify that you have stlport
>> to Boost.Build. The following doc should help:
>>
>> http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html
>> http://www.boost.org/boost-
build2/doc/html/bbv2/reference/tools.html#bbv2.reference.tools.libraries.stlport
>>
>> HTH,
>
>
> 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 >)"
> (?normalize_test_case_name_at_ut_detail_at_unit_test_at_boost@@YA?AV?
> $basic_string_at_DV?$char_traits_at_D@stlpd_std@@V?
> $allocator_at_D@2@@stlpd_std@@V?
> $basic_cstring@$$CBD_at_23@@Z)
> 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 >)"
> (?make_test_case_at_unit_test_at_boost@@YAPAVtest_case_at_12@ABV?
> $callback0_at_Uunused@ut_detail_at_unit_test_at_boost@@@12_at_V?
> $basic_cstring@$$CBD_at_12@@Z)

I suppose your application is not built with stlport
debugging. Try setting _STLP_DEBUG macro to 1, and rebuild
your project.

- Volodya


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