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: Joachim Faulhaber (afojgo_at_[hidden])
Date: 2010-12-11 07:59:39


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.

(2) When compiling with the 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)

In both instances I have no idea what to do.
Any help appreciated.

Thanx,
Joachim


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