Boost logo

Boost Users :

From: Qinfeng(Javen) Shi (shiqinfeng_at_[hidden])
Date: 2006-09-11 06:46:09


Dear all,

We are writing a python toolbox and wrapping it from c++ is much faster than
pure python.
But my wrapped c++ code(called in python) is 3 times(not plus a constant
time) slower than the orignial c++ one.

I think the difference should be a constant not a factor.
Because all the computation has been taken in *.so, the extra time cost is
the time python load it at the beginning.
Is that right?

Any opinion or suggestion about why or how to speed it up?

Best wishes!

Javen

On 9/11/06, boost-users-request_at_[hidden] <
boost-users-request_at_[hidden]> wrote:
>
> Send Boost-users mailing list submissions to
> boost-users_at_[hidden]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
> or, via email, send a message with subject or body 'help' to
> boost-users-request_at_[hidden]
>
> You can reach the person managing the list at
> boost-users-owner_at_[hidden]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Boost-users digest..."
>
>
> Today's Topics:
>
> 1. Re: having a problem seeding random number generator. (Jim Ingram)
> 2. Re: [string_algo] wildcard support? (Pavol Droba)
> 3. Re: Absolute Quanfusion : was Re: [fusion] transform a vector
> of values to refs (Andy Little)
> 4. Properties (newbie) (Olivier Tournaire)
> 5. 3 times slower than c++? (Qinfeng(Javen) Shi )
> 6. Re: 3 times slower than c++? (Andy Little)
> 7. Re: Lock pointer implementation (Mattias Br?ndstr?m)
> 8. Re: Lock pointer implementation (Mattias Brandstrom)
> 9. Re: Link error with boost regex and STLport (Maik Beckmann)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sun, 10 Sep 2006 15:38:41 +0000 (UTC)
> From: Jim Ingram <ingramj_at_[hidden]>
> Subject: Re: [Boost-users] having a problem seeding random number
> generator.
> To: boost-users_at_[hidden]
> Message-ID: <loom.20060910T172921-895_at_[hidden]>
> Content-Type: text/plain; charset=us-ascii
>
> Daniel James <daniel_james <at> fmail.co.uk> writes:
>
> > The problem is that 'variate_generator' stores a copy of the engine, not
> > a reference.
>
> Wow. You'd think that between the docs, the header files, and the example
> code,
> I would have caught that. It does make a lot more sense to have the
> generator
> and distribution encapsulated inside a variate_generator instead of
> maintaining
> them seperately.
>
> Thanks for pointing that out.
>
> --
> Jim
>
>
>
> ------------------------------
>
> Message: 2
> Date: Sun, 10 Sep 2006 20:29:09 +0200
> From: Pavol Droba <droba_at_[hidden]>
> Subject: Re: [Boost-users] [string_algo] wildcard support?
> To: boost-users_at_[hidden]
> Message-ID: <45045975.1090701_at_[hidden]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Hi,
>
> Andriy Tylychko (mail.ru) wrote:
> >
> >
> > To community and especially to Pavol Droba as the author of string_algo:
> > What do you think about popularity of wildcards as the tool for
> end-users?
> > Is it worth to add wildcards support to the library? To what library? Is
> the
> > boost-development mailing list a better place for this discussion?
>
> I can only express my personal opinion here and that is : the wildcards
> should not be a directly supported in string_algo library.
>
> Reason is simple: the functionality provided by wildcards is superseeded
> by regex in all respects. In addition, as you have explained in your
> previous mail, it is easy to convert a wildcard to a regex.
>
> I can't say if the support could be incorporated into Boost.Regex.
> This library already support several syntaxes, so wildcards could be
> just another variant. But this is more question to John Maddock.
>
> You can also try to cleanup your conversion utility and offer it to
> boost, to get a response from whole comunity.
>
> Regards,
> Pavol
>
>
> ------------------------------
>
> Message: 3
> Date: Sun, 10 Sep 2006 19:33:32 +0100
> From: "Andy Little" <andy_at_[hidden]>
> Subject: Re: [Boost-users] Absolute Quanfusion : was Re: [fusion]
> transform a vector of values to refs
> To: boost-users_at_[hidden]
> Message-ID: <ee1lpe$trq$1_at_[hidden]>
> Content-Type: text/plain; format=flowed; charset="utf-8";
> reply-type=original
>
>
> "Joel de Guzman" <joel_at_[hidden]> wrote in message
> news:edv1e0$n73$1_at_sea.gmane.org...
>
> >
> > Sounds good. Okidoki.
>
> Great. I will see if I can get on with it, rather than spend more time
> mucking
> about with fusion ;-)
>
> regards
> Andy Little
>
>
>
>
> ------------------------------
>
> Message: 4
> Date: Sun, 10 Sep 2006 21:57:17 +0200
> From: Olivier Tournaire <olitour_at_[hidden]>
> Subject: [Boost-users] Properties (newbie)
> To: boost-users_at_[hidden]
> Message-ID: <45046E1D.7040709_at_[hidden]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Hi all,
>
> I am a new boost user (2 days old ...). I just want to know a few things.
>
> 1. I use an adjacency_list with my own properties to store my graph. I
> just want to know if it is possible to manipulate directly the
> properties' values. At the moment, I use get(...) to obtain the
> property, make my change, and use put(...) to set the new value.
>
> 2. My graph cannot contain parallel edges, so I use a setS. However, the
> documentation says that listS or vecS is more efficient in time and
> space complexity. Is it possible to use std::vector or std::list and to
> disallow parallele edges ?
>
> Thanks in advance
> Olivier
>
>
> ------------------------------
>
> Message: 5
> Date: Mon, 11 Sep 2006 09:54:43 +1000
> From: "Qinfeng(Javen) Shi " <shiqinfeng_at_[hidden]>
> Subject: [Boost-users] 3 times slower than c++?
> To: boost-users_at_[hidden]
> Message-ID:
> <fe76f74b0609101654o12a61256w3b6f7c4ce24cd55a_at_[hidden]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Dear all,
>
> I wrapped a c++ code into python. It works but it is 3 times slower than
> the
> orignial c++ one.
> Is that normal? Is there something I can do to speed it up?
>
> Thanks!
>
> --
> Qinfeng(Javen) Shi
>
> Research School of Information Sciences and Engineering
> Australian National University
> Locked Bag 8001
> Canberra ACT 2601
> -------------- next part --------------
> HTML attachment scrubbed and removed
>
> ------------------------------
>
> Message: 6
> Date: Mon, 11 Sep 2006 07:39:34 +0100
> From: "Andy Little" <andy_at_[hidden]>
> Subject: Re: [Boost-users] 3 times slower than c++?
> To: boost-users_at_[hidden]
> Message-ID: <ee30ba$1to$1_at_[hidden]>
> Content-Type: text/plain; format=flowed; charset="utf-8";
> reply-type=original
>
>
> "Qinfeng(Javen) Shi " <shiqinfeng_at_[hidden]> wrote in message
> news:fe76f74b0609101654o12a61256w3b6f7c4ce24cd55a_at_mail.gmail.com...
> > Dear all,
> >
> > I wrapped a c++ code into python. It works but it is 3 times slower than
> the
> > orignial c++ one.
> > Is that normal? Is there something I can do to speed it up?
>
> Python slower than C++? I don't believe it !
>
> ...;-)
>
> regards
> Andy Little
>
>
>
>
> ------------------------------
>
> Message: 7
> Date: Mon, 11 Sep 2006 09:40:35 +0200
> From: Mattias Br?ndstr?m <thebrasse_at_[hidden]>
> Subject: Re: [Boost-users] Lock pointer implementation
> To: boost-users_at_[hidden]
> Message-ID: <450512F3.5000503_at_[hidden]>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> Sebastian Redl wrote:
> > On Thu, September 7, 2006 8:38 am, Mattias Br??ndstr??m wrote:
> > I've played with this thought several times in the past. In the end,
> what
> > made me never implement it is the fact that it locks and unlocks the
> mutex
> > for every single operation on the class. If you call more than one
> > operation in sequence, that's not exactly efficient.
> > That said, for classes that have only operations which you usually don't
> > call in sequence, the pointer is quite useful. I have just one change:
> > there is no reason to allocate the lock dynamically.
>
> For some reason most of my classes that ar thread safe handles locking
> in a similar way to the LockPointer, locking a mutex for each method
> call. I don't like exposing the thread safety so to speak. But I can
> definitely see your point in that being inefficient some times.
>
> Another small thing I have come to think of is the case where the
> pointed to class call itself as a result of a method call thru thru the
> lock pointer. In these cases a second lock will not be created as it
> would if I had implemented locking within the class itself. However, I
> can't think of any cases where this will cause any problems.
>
> >
> >>class LockProxy {
> >>public:
> >>LockProxy(boost::shared_ptr<T> p,
> >>boost::shared_ptr<boost::recursive_mutex> mutex)
> >>: p_(p), lock_(*mutex)
> >>{
> >>}
> >>
> >>
> >>const boost::shared_ptr<T> &operator->()
> >>{
> >>return p_; }
> >>
> >>
> >>private:
> >>boost::shared_ptr<T> p_;
> >>boost::recursive_mutex::scoped_lock lock_;
> >>};
> >
> >
> > I've also changed the return type of operator ->. There's no need to
> > create a copy of the shared_ptr.
>
> I'll use these changes in my implementation.
>
> :.:: mattias
>
>
> ------------------------------
>
> Message: 8
> Date: Mon, 11 Sep 2006 11:39:35 +0200
> From: Mattias Brandstrom <thebrasse_at_[hidden]>
> Subject: Re: [Boost-users] Lock pointer implementation
> To: boost-users_at_[hidden]
> Message-ID: <ee3asn$241$1_at_[hidden]>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> Mattias Br?ndstr?m wrote:
> > Sebastian Redl wrote:
> [snip]
> >>>class LockProxy {
> >>>public:
> >>>LockProxy(boost::shared_ptr<T> p,
> >>>boost::shared_ptr<boost::recursive_mutex> mutex)
> >>>: p_(p), lock_(*mutex)
> >>>{
> >>>}
> >>>
> >>>
> >>>const boost::shared_ptr<T> &operator->()
> >>>{
> >>>return p_; }
> >>>
> >>>
> >>>private:
> >>>boost::shared_ptr<T> p_;
> >>>boost::recursive_mutex::scoped_lock lock_;
> >>>};
> >>
> >>
> >>I've also changed the return type of operator ->. There's no need to
> >>create a copy of the shared_ptr.
> >
> >
> > I'll use these changes in my implementation.
>
> Actually, it seems that I will not be able to have the lock as member of
> LockProxy since it's boost::noncopyable. LockPointer's operator->()
> returns a LockProxy by value and needs to copy all member of it to do
> so. I can't see any way around this so I need to have a pointer to the
> lock in LockProxy. Perhaps someone else can see a way to not have to use
> a pointer to the lock?
>
> :.:: mattias
>
>
>
> ------------------------------
>
> Message: 9
> Date: Mon, 11 Sep 2006 11:47:27 +0200
> From: Maik Beckmann <maikbeckmann_at_[hidden]>
> Subject: Re: [Boost-users] Link error with boost regex and STLport
> To: boost-users_at_[hidden]
> Message-ID: <1157968048.9329.26.camel_at_localhost>
> Content-Type: text/plain
>
> Hello
>
> After I found out how to make bjam verbose for checking the included
> dirs I build boost again:
> <command>
> bjam -d2 -sTOOLS="gcc-stlport" -sSTLPORT_PATH="this/is/a/dummy"
> -sSTLPORT_VERSION="5.0.2" -sSTLPORT_5.0.2_PATH="/usr/include"
> -sBUILD="release" stage
> </command>
>
> The "-d2" option to check if it include's the right directory ( should
> be /usr/include/stlport):
>
> <bjam output>
> gcc-C++-action
>
> bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/c_regex_traits.o
>
> set -e
> "g++" -c -Wall -ftemplate-depth-255 -DNDEBUG -DNDEBUG
> -DBOOST_REGEX_DYN_LINK=1 -D_STLP_USE_DYNAMIC_LIB=1 -O3
> -finline-functions -Wno-inline -fPIC -I"bin/boost/libs/regex/build" -I
> "/usr/include/stlport" -I "/home/maik/Eigene-Dateien/WZL/boost_1_33_1"
> -o
> "bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/c_regex_traits.o"
> "/home/maik/Eigene-Dateien/WZL/boost_1_33_1/libs/regex/build/../src/c_regex_traits.cpp"
> <bjam output>
>
> but... there are new linker errors:
>
> <linker>
> find_regex.cc:(.text._ZNK8stlp_std12_String_baseIcNS_9allocatorIcEEE21_M_throw_length_errorEv[stlp_std::_String_base<char,
> stlp_std::allocator<char> >::_M_throw_length_error() const]+0x9): undefined
> reference to `stlp_std::__stl_throw_length_error(char const*)'
> CMakeFiles/find_regex.dir/find_regex.o: In function
> `boost::bad_function_call::~bad_function_call()':
> find_regex.cc:(.text._ZN5boost17bad_function_callD0Ev[boost::bad_function_call::~bad_function_call()]+0x12):
> undefined reference to `stlp_std::runtime_error::~runtime_error()'
> CMakeFiles/find_regex.dir/find_regex.o: In function
> `boost::bad_function_call::~bad_function_call()':
> find_regex.cc:(.text._ZN5boost17bad_function_callD1Ev[boost::bad_function_call::~bad_function_call()]+0xb):
> undefined reference to `stlp_std::runtime_error::~runtime_error()'
> CMakeFiles/find_regex.dir/find_regex.o: In function `bool
> stlp_std::_M_init<char, stlp_std::char_traits<char>
> >(stlp_std::basic_ostream<char, stlp_std::char_traits<char> >&)':
> find_regex.cc:(.text._ZN8stlp_std7_M_initIcNS_11char_traitsIcEEEEbRNS_13basic_ostreamIT_T0_EE[bool
> stlp_std::_M_init<char, stlp_std::char_traits<char>
> >(stlp_std::basic_ostream<char, stlp_std::char_traits<char> >&)]+0x86):
> undefined reference to `stlp_std::ios_base::_M_throw_failure()'
> find_regex.cc:(.text._ZN8stlp_std7_M_initIcNS_11char_traitsIcEEEEbRNS_13basic_ostreamIT_T0_EE[bool
> stlp_std::_M_init<char, stlp_std::char_traits<char>
> >(stlp_std::basic_ostream<char, stlp_std::char_traits<char> >&)]+0xa2):
> undefined reference to `stlp_std::ios_base::_M_throw_failure()'
> CMakeFiles/find_regex.dir/find_regex.o: In function
> `stlp_std::basic_ostream<char, stlp_std::char_traits<char>
> >::put(char)':
> find_regex.cc:(.text._ZN8stlp_std13basic_ostreamIcNS_11char_traitsIcEEE3putEc[stlp_std::basic_ostream<char,
> stlp_std::char_traits<char> >::put(char)]+0x7c): undefined reference to
> `stlp_std::ios_base::_M_throw_failure()'
> find_regex.cc:(.text._ZN8stlp_std13basic_ostreamIcNS_11char_traitsIcEEE3putEc[stlp_std::basic_ostream<char,
> stlp_std::char_traits<char> >::put(char)]+0xd3): undefined reference to
> `stlp_std::ios_base::_M_throw_failure()'
> find_regex.cc:(.text._ZN8stlp_std13basic_ostreamIcNS_11char_traitsIcEEE3putEc[stlp_std::basic_ostream<char,
> stlp_std::char_traits<char> >::put(char)]+0x187): undefined reference to
> `stlp_std::ios_base::_M_throw_failure()'
> CMakeFiles/find_regex.dir/find_regex.o:find_regex.cc:(.text._ZN8stlp_std4endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_[stlp_std::basic_ostream<char,
> stlp_std::char_traits<char> >& stlp_std::endl<char,
> stlp_std::char_traits<char> >(stlp_std::basic_ostream<char,
> stlp_std::char_traits<char> >&)]+0x5c): more undefined references to
> `stlp_std::ios_base::_M_throw_failure()' follow
> CMakeFiles/find_regex.dir/find_regex.o: In function
> `boost::re_detail::perl_matcher<char const*,
> stlp_std::allocator<boost::sub_match<char const*> >,
> boost::regex_traits<char, boost::cpp_regex_traits<char> >
> >::perl_matcher(char const*, char const*, boost::match_results<char
> const*, stlp_std::allocator<boost::sub_match<char const*> > >&,
> boost::basic_regex<char, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags, char const*)':
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPKcN8stlp_std9allocatorINS_9sub_matchIS3_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEC1ES3_S3_RNS_13match_resultsIS3_S8_EERKNS_11basic_regexIcSC_EENS_15regex_constants12_match_flagsES3_[boost::re_detail::perl_matcher<char
> const*, stlp_std::allocator<boost::sub_match<char const*> >,
> boost::regex_traits<char, boost::cpp_regex_traits<char> >
> >::perl_matcher(char const*, char const*, boost::match_results<char const*,
> stlp_std::allocator<boost::sub_match<char const*> > >&,
> boost::basic_regex<char, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags, char const*)]+0x86): undefined
> reference to `boost::re_detail::perl_matcher<char const*,
> stlp_std::allocator<boost::sub_match<char const*> >,
> boost::regex_traits<char, boost::cpp_regex_traits<char> >
> >::construct_init(boost::basic_regex<char, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&, boost::regex_
> constants::_match_flags)'
> CMakeFiles/find_regex.dir/find_regex.o: In function `bool
> boost::regex_search<char const*,
> stlp_std::allocator<boost::sub_match<char const*> >, char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > >(char const*,
> char const*, boost::match_results<char const*,
> stlp_std::allocator<boost::sub_match<char const*> > >&,
> boost::basic_regex<char, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags, char const*)':
> find_regex.cc:(.text._ZN5boost12regex_searchIPKcN8stlp_std9allocatorINS_9sub_matchIS2_EEEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SC_RNS_13match_resultsISC_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_flagsESC_[bool
> boost::regex_search<char const*, stlp_std::allocator<boost::sub_match<char
> const*> >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >
> >(char const*, char const*, boost::match_results<char const*,
> stlp_std::allocator<boost::sub_match<char const*> > >&,
> boost::basic_regex<char, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags, char const*)]+0x6a): undefined
> reference to `boost::re_detail::perl_matcher<char const*,
> stlp_std::allocator<boost::sub_match<char const*> >,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
> CMakeFiles/find_regex.dir/find_regex.o: In function
> `boost::function2<boost::iterator_range<char const*>, char const*, char
> const*, stlp_std::allocator<boost::function_base> >::operator()(char
> const*, char const*) const':
> find_regex.cc:(.text._ZNK5boost9function2INS_14iterator_rangeIPKcEES3_S3_N8stlp_std9allocatorINS_13function_baseEEEEclES3_S3_[boost::function2<boost::iterator_range<char
> const*>, char const*, char const*, stlp_std::allocator<boost::function_base>
> >::operator()(char const*, char const*) const]+0x47): undefined reference to
> `stlp_std::__Named_exception::__Named_exception(stlp_std::basic_string<char,
> stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
> find_regex.cc:(.text._ZNK5boost9function2INS_14iterator_rangeIPKcEES3_S3_N8stlp_std9allocatorINS_13function_baseEEEEclES3_S3_[boost::function2<boost::iterator_range<char
> const*>, char const*, char const*, stlp_std::allocator<boost::function_base>
> >::operator()(char const*, char const*) const]+0x5d): undefined reference to
> `vtable for stlp_std::runtime_error'
> find_regex.cc:(.text._ZNK5boost9function2INS_14iterator_rangeIPKcEES3_S3_N8stlp_std9allocatorINS_13function_baseEEEEclES3_S3_[boost::function2<boost::iterator_range<char
> const*>, char const*, char const*, stlp_std::allocator<boost::function_base>
> >::operator()(char const*, char const*) const]+0x9b): undefined reference to
> `vtable for stlp_std::__Named_exception'
> find_regex.cc:(.text._ZNK5boost9function2INS_14iterator_rangeIPKcEES3_S3_N8stlp_std9allocatorINS_13function_baseEEEEclES3_S3_[boost::function2<boost::iterator_range<char
> const*>, char const*, char const*, stlp_std::allocator<boost::function_base>
> >::operator()(char const*, char const*) const]+0x13e): undefined reference
> to `stlp_std::runtime_error::~runtime_error()'
> CMakeFiles/find_regex.dir/find_regex.o: In function `void
> boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >
> >(boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::error_type)':
> find_regex.cc:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[void
> boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >
> >(boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::error_type)]+0xa0): undefined reference to
> `stlp_std::__Named_exception::__Named_exception(stlp_std::basic_string<char,
> stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
> find_regex.cc:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[void
> boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >
> >(boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::error_type)]+0xb6): undefined reference to `vtable
> for stlp_std::runtime_error'
> find_regex.cc:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[void
> boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >
> >(boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::error_type)]+0xda): undefined reference to
> `boost::re_detail::raise_runtime_error(stlp_std::runtime_error const&)'
> find_regex.cc:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[void
> boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >
> >(boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::error_type)]+0xe2): undefined reference to
> `stlp_std::runtime_error::~runtime_error()'
> find_regex.cc:(.text._ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[void
> boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >
> >(boost::regex_traits_wrapper<boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::error_type)]+0x180): undefined reference to
> `stlp_std::runtime_error::~runtime_error()'
> CMakeFiles/find_regex.dir/find_regex.o: In function
> `boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> >
> >::construct_init(boost::basic_regex<char, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)':
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x15e): undefined reference to
> `stlp_std::__Named_exception::__Named_exception(stlp_std::basic_string<char,
> stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x174): undefined reference to
> `vtable for stlp_std::invalid_argument'
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x1a6): undefined reference to
> `vtable for stlp_std::__Named_exception'
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x1c9): undefined reference to
> `vtable for stlp_std::invalid_argument'
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x1d1): undefined reference to
> `stlp_std::invalid_argument::~invalid_argument()'
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x1d9): undefined reference to
> `typeinfo for stlp_std::invalid_argument'
> find_regex.cc:(.text._ZN5boost9re_detail12perl_matcherIPcN8stlp_std9allocatorINS_9sub_matchIS2_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSB_EENS_15regex_constants12_match_flagsE[boost::re_detail::perl_matcher<char*,
> stlp_std::allocator<boost::sub_match<char*> >, boost::regex_traits<char,
> boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char,
> boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&,
> boost::regex_constants::_match_flags)]+0x40e): undefined reference to
> `stlp_std::invalid_argument::~invalid_argument()'
> CMakeFiles/find_regex.dir/find_regex.o:(.rodata._ZTVN5boost17bad_function_callE[vtable
> for boost::bad_function_call]+0x10): undefined reference to
> `stlp_std::__Named_exception::what() const'
> CMakeFiles/find_regex.dir/find_regex.o:(.rodata._ZTIN5boost17bad_function_callE[typeinfo
> for boost::bad_function_call]+0x8): undefined reference to `typeinfo for
> stlp_std::runtime_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::locale::~locale()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to
> `stlpmtx_std::ctype<char>::scan_not(stlpmtx_std::ctype_base::mask, char
> const*, char const*) const'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::ctype<char>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::invalid_argument::~invalid_argument()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::logic_error::~logic_error()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::__Named_exception::what() const'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::ctype<wchar_t>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::locale::operator=(stlpmtx_std::locale
> const&)'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::messages<char>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::runtime_error::~runtime_error()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::locale::locale(stlpmtx_std::locale
> const&)'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `vtable for stlpmtx_std::overflow_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::overflow_error::~overflow_error()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::locale::locale()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `vtable for stlpmtx_std::logic_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::ios_base::_M_throw_failure()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::collate<wchar_t>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `typeinfo for stlpmtx_std::overflow_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::messages<wchar_t>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to
> `stlpmtx_std::locale::_M_use_facet(stlpmtx_std::locale::id const&) const'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `typeinfo for stlpmtx_std::logic_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::__stl_throw_length_error(char const*)'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::__stl_throw_out_of_range(char const*)'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `typeinfo for stlpmtx_std::invalid_argument'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::ios_base::~ios_base()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `typeinfo for stlpmtx_std::runtime_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `vtable for stlpmtx_std::__Named_exception'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::ios_base::imbue(stlpmtx_std::locale
> const&)'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to
> `stlpmtx_std::__Named_exception::__Named_exception(stlpmtx_std::basic_string<char,
> stlpmtx_std::char_traits<char>, stlpmtx_std::allocator<char> > const&)'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to
> `stlpmtx_std::locale::_M_get_facet(stlpmtx_std::locale::id const&) const'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::numpunct<wchar_t>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `vtable for stlpmtx_std::invalid_argument'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `vtable for stlpmtx_std::runtime_error'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::ios_base::ios_base()'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::numpunct<char>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::collate<char>::id'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `typeinfo for stlpmtx_std::ios_base'
> /home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true/libboost_regex-gcc-p-1_33_1.so:
> undefined reference to `stlpmtx_std::runtime_error::~runtime_error()'
> </linker>
>
> It looks like I didn't linked to libstlport.so, but here is the linker
> command line:
> <linker command>
> /usr/bin/c++ -O2 -march=athlon-xp -mtune=athlon-xp -pipe -m3dnow -mmmx
> -fomit-frame-pointer -momit-leaf-frame-pointer -fno-ident
> -fvisibility-inlines-hidden -fPIC
> "CMakeFiles/find_regex.dir/find_regex.o" -o find_regex -rdynamic
> -L/home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true
> -lboost_regex-gcc-p-1_33_1 -lstlport
> -Wl,-rpath,/home/maik/Eigene-Dateien/WZL/boost_1_33_1/bin/boost/libs/regex/build/libboost_regex.so/gcc-stlport/release/shared-linkable-true
> </linker command>
>
> I think there's something wrong with the command I build boost with,
> again. John, can you please give me an bjam command to build boost
> right. STLport headers are in /usr/include/stlport and the libs
> in /usr/lib.
>
> Thanks in advance,
> Maik
>
>
>
> ------------------------------
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
> End of Boost-users Digest, Vol 1024, Issue 1
> ********************************************
>

-- 
Qinfeng(Javen) Shi
Research School of Information Sciences and Engineering
Australian National University
Locked Bag 8001
Canberra ACT 2601


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net