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@lists.boost.org <
boost-users-request@lists.boost.org> wrote:
Send Boost-users mailing list submissions to
boost-users@lists.boost.org
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@lists.boost.org
You can reach the person managing the list at
boost-users-owner@lists.boost.org
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@gmail.com>
Subject: Re: [Boost-users] having a problem seeding random number
generator.
To: boost-users@lists.boost.org
Message-ID: <loom.20060910T172921-895@post.gmane.org>
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@topmail.sk>
Subject: Re: [Boost-users] [string_algo] wildcard support?
To: boost-users@lists.boost.org
Message-ID: <45045975.1090701@topmail.sk>
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@servocomm.freeserve.co.uk>
Subject: Re: [Boost-users] Absolute Quanfusion : was Re: [fusion]
transform a vector of values to refs
To: boost-users@lists.boost.org
Message-ID: <ee1lpe$trq$1@sea.gmane.org>
Content-Type: text/plain; format=flowed; charset="utf-8";
reply-type=original
"Joel de Guzman" <joel@boost-consulting.com> wrote in message
news:edv1e0$n73$1@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@yahoo.fr>
Subject: [Boost-users] Properties (newbie)
To: boost-users@lists.boost.org
Message-ID: <45046E1D.7040709@yahoo.fr>
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@gmail.com>
Subject: [Boost-users] 3 times slower than c++?
To: boost-users@lists.boost.org
Message-ID:
<
fe76f74b0609101654o12a61256w3b6f7c4ce24cd55a@mail.gmail.com>
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@servocomm.freeserve.co.uk>
Subject: Re: [Boost-users] 3 times slower than c++?
To:
boost-users@lists.boost.org
Message-ID: <ee30ba$1to$1@sea.gmane.org>
Content-Type: text/plain; format=flowed; charset="utf-8";
reply-type=original
"Qinfeng(Javen) Shi " <shiqinfeng@gmail.com> wrote in message
news:fe76f74b0609101654o12a61256w3b6f7c4ce24cd55a@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@brasse.org>
Subject: Re: [Boost-users] Lock pointer implementation
To: boost-users@lists.boost.org
Message-ID: <
450512F3.5000503@brasse.org>
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@brasse.org>
Subject: Re: [Boost-users] Lock pointer implementation
To: boost-users@lists.boost.org
Message-ID: <
ee3asn$241$1@sea.gmane.org>
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@gmx.de
>
Subject: Re: [Boost-users] Link error with boost regex and STLport
To: boost-users@lists.boost.org
Message-ID: <1157968048.9329.26.camel@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@lists.boost.org
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