|
Boost : |
From: Richard Hadsell (hadsell_at_[hidden])
Date: 2005-08-22 09:05:49
John Maddock wrote:
>I have a suspicion that what's happening is this:
>
>The match_results<const char*> template instance is explicitly instantiated
>in the library, and declared as "extern" in user code (so it uses the
>instance in the library). I suspect that your code is being built with
>inline expansions off, but the release version of the lib doesn't have these
>inline members instantiated in it, so either:
>
>
My code is not built with inlining disabled. For compiling I use '-mp
-pc64 -DBOOST_ENABLE_ASSERT_HANDLER' with the addition of '-O2 -xN
-vec_report0 -DBOOST_DISABLE_ASSERTS' for optimized and '-g' for debug
versions. For linking I use '-Wl,--export-dynamic'.
>1) Try linking to the debug build of the lib when building with inline
>expansion turned off.
>2) uncomment the line // #define BOOST_REGEX_NO_EXTERNAL_TEMPLATES in
>boost/regex/user.hpp and rebuild everything, the regex lib will now be
>slightly smaller, and your exe will be a lot bigger, but it should cure the
>problem.
>
>
I will try this.
>3) Upgrade to Intel 8.1, I realise this might not be possible though.
>
>
We tried 8.1, but it produces code that is slower than g++ 3.4.4 for our
application, so we are retiring the Intel version. It also has a bug
that Intel only fixed in 9.0.
-- Dick Hadsell 914-259-6320 Fax: 914-259-6499 Reply-to: hadsell_at_[hidden] Blue Sky Studios http://www.blueskystudios.com 44 South Broadway, White Plains, NY 10601
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk