Subject: [Boost-bugs] [Boost C++ Libraries] #7647: b2 incompatible with _STLP_LIB_NAME_MOTIF in stlport (no library names flexibility) - fatal error LNK1181: cannot open input file 'stlportstld.5.2.lib
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-11-06 03:37:11
#7647: b2 incompatible with _STLP_LIB_NAME_MOTIF in stlport (no library names
flexibility) - fatal error LNK1181: cannot open input file
'stlportstld.5.2.lib
---------------------------------------------------------------+------------
Reporter: Marcello Pietrobon <marcello.pietrobon@â¦> | Type: Bugs
Status: new | Milestone: To Be Determined
Component: Building Boost | Version: Boost 1.52.0
Severity: Problem | Keywords: b2 bjam stlport
---------------------------------------------------------------+------------
B2 seems too rigid with the searched libraries names used for stlport.
It causes problems for someone who needs to use names a suffix
_STLP_LIB_NAME_MOTIF that is not empty (see stlport/stl/config/user-
config.h).
Here I explain the context the context.
I've tried (succcessfully) to build boost_1_52 with stlport.5.2.1 with
Microsoft vs 2010 (vc10)
I've essentially used what suggested in
http://www.lenholgate.com/blog/2010/07/stlport-521-and-
vs2010-and-x64.html.
[[BR]]
The author of the pages uses _STLP_LIB_NAME_MOTIF in order to specify the
compiler's name in the library name, which is what I need too.
To build with stlport I've followed the usual procedure:
1- added in tools/build/v2/user-config.jam the lines[[BR]]
using msvc : 10.0 ;
using stlport : 5.2.1 : <my_path_to_stlport>/STLport-5.2.1/stlport :
<my_path_to_stlport>/STLport-5.2.1/lib/vc10 ;
2- and issued the command:[[BR]]
.\tools\build\v2\b2.exe stdlib=stlport-5.2.1 toolset=msvc-10.0
debug/define=_STLP_DEBUG release --build-type=complete stage
What I get is a linking error to the stlport libraries when doing
link=shared threading=multi
(for example with --with-system)[[BR]]
the message error is:
LINK : fatal error LNK1181: cannot open input file 'stlportstld.5.2.lib'
This is because stlport.jam ((probably this jam file) '''forces''' the
link to the stlport with its own names, therefore '''bypassing''' what is
specified in the file STLport-5.2.1\stlport\stl\config\_auto_link.h
I wonder why this choice, considering that life was beautiful years ago
when this everything was delegated to stlport\stl\config\_auto_link.h. I
imagine you had your own reasons.
[[BR]]
[[BR]]
Things therefore work if I do:[[BR]]
tools/build/v2/user-config.jam:[[BR]]
using msvc : 10.0 ;
using stlport : vc10.5.2.1 : <my_path_to_stlport>/STLport-5.2.1/stlport
: <my_path_to_stlport>/STLport-5.2.1/lib/vc10 ;
and issue the command:[[BR]]
.\tools\build\v2\b2.exe stdlib=stlport-vc10.5.2.1 toolset=msvc-10.0
debug/define=_STLP_DEBUG release --build-type=complete stage
But still there is one strange behaviour which is problematic.[[BR]]
Let's take tools/build/v2/user-config.jam again[[BR]]
with[[BR]]
using stlport : 5.2.1 : ....[[BR]]
the library searched was stlportstld.5.2.lib
[[BR]]
with[[BR]]
using stlport : vc10.5.2.1 : ....[[BR]]
the library searched was stlportstldvc10.5.2.lib
[[BR]]
with[[BR]]
using stlport : xyz.5.2.1 : ....[[BR]]
the library searched was stlportstldvc10.5.2.lib
i.e. not stlportstldxyz.5.2.lib
[[BR]]
And this is a problem, as people may want to build to the stlport
libraries also when their name name is modified according to the
_STLP_LIB_NAME_MOTIF macro in stlport/stl/config/user-config.h.
Hope this will be fixed, if you agree this is a limitation. Again, I wish
everything would be left to what is specified in
STLport-5.2.1\stlport\stl\config\_auto_link.h
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/7647> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:11 UTC