[regex] link errors on 1.60 update
When I tried to convert my project from Boost 1.58.0 to 1.60.0, I got
some link errors. This is using Xcode 4.6.3 on Mac OS X 10.7.5. I'm
compiling all the sources in libs/regex/src. Help?
Undefined symbols for architecture i386:
"boost::re_detail_106000::perl_matcher
::construct_init(boost::basic_regex
> const&, boost::regex_constants::_match_flags)", referenced from: boost::re_detail_106000::perl_matcher >, boost::regex_traits ::perl_matcher(char const*, char const*, boost::match_results > >&, boost::basic_regex > const&, boost::regex_constants::_match_flags, char const*) in BVHJointMap.o boost::re_detail_106000::perl_matcher >, boost::regex_traits ::perl_matcher(char const*, char const*, boost::match_results > >&, boost::basic_regex > const&, boost::regex_constants::_match_flags, char const*) in AnimationsManager.o
"boost::re_detail_106000::perl_matcher
On 23/12/2015 22:36, James Walker wrote:
When I tried to convert my project from Boost 1.58.0 to 1.60.0, I got some link errors. This is using Xcode 4.6.3 on Mac OS X 10.7.5. I'm compiling all the sources in libs/regex/src. Help?
Undefined symbols for architecture i386: "boost::re_detail_106000::perl_matcher
>, boost::regex_traits ::construct_init(boost::basic_regex
> const&, boost::regex_constants::_match_flags)", referenced from:
My suspicion is that you are linking to the wrong version of libboost_regex: from 1.60 onwards the symbols are all mangled with the Boost version number so this is the error you get if you happened to have say 1.58 still in your search path. HTH, John.
On 12/24/2015 1:01 AM, John Maddock wrote:
My suspicion is that you are linking to the wrong version of libboost_regex: from 1.60 onwards the symbols are all mangled with the Boost version number so this is the error you get if you happened to have say 1.58 still in your search path.
HTH, John.
I resolved the error by removing all the object files and fully rebuilding the project. I would have sent a "never mind" message earlier, but for some reason the list server was set to not send me copies of my own posts, so I couldn't reply to my own post, and I didn't want to start a new thread. Sorry about the noise.
Hi John,
Small question. Is this also activated on Windows? I didn't see the
name mangling in other libraries, or is this only in regex?
Regards,
Matthieu
2015-12-24 9:01 GMT+00:00 John Maddock
On 23/12/2015 22:36, James Walker wrote:
When I tried to convert my project from Boost 1.58.0 to 1.60.0, I got some link errors. This is using Xcode 4.6.3 on Mac OS X 10.7.5. I'm compiling all the sources in libs/regex/src. Help?
Undefined symbols for architecture i386: "boost::re_detail_106000::perl_matcher
>, boost::regex_traits >::construct_init(boost::basic_regex > const&, boost::regex_constants::_match_flags)", referenced from: My suspicion is that you are linking to the wrong version of libboost_regex: from 1.60 onwards the symbols are all mangled with the Boost version number so this is the error you get if you happened to have say 1.58 still in your search path.
HTH, John.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Information System Engineer, Ph.D. Blog: http://matt.eifelle.com LinkedIn: http://www.linkedin.com/in/matthieubrucher
On 05/01/2016 16:48, Matthieu Brucher wrote:
Hi John,
Small question. Is this also activated on Windows? I didn't see the name mangling in other libraries, or is this only in regex?
All platforms, whether other library authors choose to do this is up to them, I think Boost.Log does, not sure about everything else. John.
participants (3)
-
James Walker
-
John Maddock
-
Matthieu Brucher