|
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