[boost:regex]an compiler error when use boost1_36 in application
hi,all When I use "libboost_regex-iw-mt-s-1_36.lib" in my application , I got such compiler error "cannot open file 'stlport_static.5.1.lib'".Should I need to find stlport_static.5.1.lib and add it by my self? Is there any Macro that may let myself choose whether or not use the 'stlport_static.5.1.lib'? PS:The boost lib I used is compilered with ICU,Is there any chance that the 'stlport_static.5.1.lib' is brought by useage of ICU? Thanks Juan
Hello Juan, I see you compiled boost or your application using stlport library. You must compile stlport, so you will get the stlport_static.5.1.lib library, then you only need to add the path where it is located to the Library path of your compiler. ICU is a standalone library that use DLL files, so I dont think they search for stlport. Another solution is to NOT use stlport, remove if from your compiler path and dont include its header files. Byee Andrea _____ Da: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] Per conto di gj_uestc Inviato: lunedì 8 settembre 2008 16.32 A: boost-users@lists.boost.org Oggetto: [Boost-users] [boost:regex]an compiler error when use boost1_36 inapplication hi,all When I use "libboost_regex-iw-mt-s-1_36.lib" in my application , I got such compiler error "cannot open file 'stlport_static.5.1.lib'".Should I need to find stlport_static.5.1.lib and add it by my self? Is there any Macro that may let myself choose whether or not use the 'stlport_static.5.1.lib'? PS:The boost lib I used is compilered with ICU,Is there any chance that the 'stlport_static.5.1.lib' is brought by useage of ICU? Thanks Juan
gj_uestc wrote:
When I use "libboost_regex-iw-mt-s-1_36.lib" in my application , I got such compiler error "cannot open file 'stlport_static.5.1.lib'".Should I need to find stlport_static.5.1.lib and add it by my self? Is there any Macro that may let myself choose whether or not use the 'stlport_static.5.1.lib'?
PS:The boost lib I used is compilered with ICU,Is there any chance that the 'stlport_static.5.1.lib' is brought by useage of ICU?
Nope, it will only be there if you built regex against STLPort, and if you did that, then you need to be using STLPort in your application as well (and obviously telling the compiler where the binary is). You can of course build regex without STLport and with ICU if you prefer. HTH, John.
I activated bjam like this:"bjam --toolset=intel --with-regex link=static runtime-link=static -sICU_PATH=C:\home\gejuan\icu4c-4_0-src\icu stage'to generate a static lib "libboost_regex-iw-mt-s-1_36.lib",
to find out that 'stlport_static.5.1.lib' always been asked from "libboost_regex-iw-mt-s-1_36.lib".
could you pls kindly tell me how can I get myself out of this?
Thanks very much
Juan
在2008-09-08 23:52:26,"John Maddock"
gj_uestc wrote:
When I use "libboost_regex-iw-mt-s-1_36.lib" in my application , I got such compiler error "cannot open file 'stlport_static.5.1.lib'".Should I need to find stlport_static.5.1.lib and add it by my self? Is there any Macro that may let myself choose whether or not use the 'stlport_static.5.1.lib'?
PS:The boost lib I used is compilered with ICU,Is there any chance that the 'stlport_static.5.1.lib' is brought by useage of ICU?
Nope, it will only be there if you built regex against STLPort, and if you did that, then you need to be using STLPort in your application as well (and obviously telling the compiler where the binary is). You can of course build regex without STLport and with ICU if you prefer.
HTH, John.
gj_uestc wrote:
I activated bjam like this:"bjam --toolset=intel --with-regex link=static runtime-link=static -sICU_PATH=C:\home\gejuan\icu4c-4_0-src\icu stage'to generate a static lib "libboost_regex-iw-mt-s-1_36.lib", to find out that 'stlport_static.5.1.lib' always been asked from "libboost_regex-iw-mt-s-1_36.lib". could you pls kindly tell me how can I get myself out of this?
No because it works for me: somehow, somewhere you must be building the regex lib with STLport, and Boost.Build most certainly doesn't do that by default / all on it's own (it wouldn't even know where to find STLPort for one thing). BTW, I believe the ICU dll's that IMB ship are built against the release/dll msvc runtime. You will almost certainly have to use the same msvc runtime in your code, and when building Boost.Regex (in other words the runtime-link=static option probably isn't binary compatible with the ICU dll's, of course if you built ICU from source then all bets are off). And finally... Boost.Regex is "just a bunch of sources", you could addthe source files in libs/regex/src/*.cpp to your IDE directly, and set BOOST_HAS_ICU as a #define, and away you go... nothing magic here. HTH, John.
Juan,
You have STLPORT defined in your compiler include path having a higher
priority than the default compiler path to the stl. So when any source of
your application or boost is trying to do so something like
#include <vector>
then your compiler is looking first at the STLPORT include path where it
will find the vector file forcing you to use STLPORT.
Andrea
_____
Da: boost-users-bounces@lists.boost.org
[mailto:boost-users-bounces@lists.boost.org] Per conto di gj_uestc
Inviato: martedì 9 settembre 2008 6.57
A: boost-users@lists.boost.org
Oggetto: Re: [Boost-users] [boost:regex]an compiler error when use boost1_36
inapplication
I activated bjam like this:"bjam --toolset=intel --with-regex
link=static runtime-link=static -sICU_PATH=C:\home\gejuan\icu4c-4_0-src\icu
stage'to generate a static lib "libboost_regex-iw-mt-s-1_36.lib",
to find out that 'stlport_static.5.1.lib' always been asked from
"libboost_regex-iw-mt-s-1_36.lib".
could you pls kindly tell me how can I get myself out of this?
Thanks very much
Juan
在2008-09-08 23:52:26,"John Maddock"
gj_uestc wrote:
When I use "libboost_regex-iw-mt-s-1_36.lib" in my application , I got such compiler error "cannot open file 'stlport_static.5.1.lib'".Should I need to find stlport_static.5.1.lib and add it by my self? Is there any Macro that may let myself choose whether or not use the 'stlport_static.5.1.lib'?
PS:The boost lib I used is compilered with ICU,Is there any chance that the 'stlport_static.5.1.lib' is brought by useage of ICU?
Nope, it will only be there if you built regex against STLPort, and if you did that, then you need to be using STLPort in your application as well (and obviously telling the compiler where the binary is). You can of course build regex without STLport and with ICU if you prefer.
HTH, John.
another information is that when I build the static library of boost:regex in linux with intel compiler also, this issue does not exit any more. I am not sure whether this phenomena related with win32 platform.
在2008-09-08 23:52:26,"John Maddock"
gj_uestc wrote:
When I use "libboost_regex-iw-mt-s-1_36.lib" in my application , I got such compiler error "cannot open file 'stlport_static.5.1.lib'".Should I need to find stlport_static.5.1.lib and add it by my self? Is there any Macro that may let myself choose whether or not use the 'stlport_static.5.1.lib'?
PS:The boost lib I used is compilered with ICU,Is there any chance that the 'stlport_static.5.1.lib' is brought by useage of ICU?
Nope, it will only be there if you built regex against STLPort, and if you did that, then you need to be using STLPort in your application as well (and obviously telling the compiler where the binary is). You can of course build regex without STLport and with ICU if you prefer.
HTH, John.
participants (3)
-
Andrea Denzler
-
gj_uestc
-
John Maddock