Boost logo

Boost Users :

From: Brad Smith (brad_at_[hidden])
Date: 2021-05-28 16:41:00


Hi,

I am trying to upgrade from Boost 1.73 to Boost 1.76 and down to only
one consumer left that will
not build. This appears to be an issue with Boost::regex.

I noticed this in the Boost 1.76 release notes..

"Regex is now header only except in C++03 mode."

Clang defaults to C++14, but I noticed BOOST_REGEX_CXX03 is defined. The
project does not
specify a particular C++ version so it should be using C++14.

The functions below exist in the Boost 1.73 Boost::regex library but not
in the 1.76
library.

The project in question uses the function regex_match().

Any hints as to how to resolve this?

ld: error: undefined symbol:
boost::scoped_static_mutex_lock::scoped_static_mutex_lock(boost::static_mutex&,
bool)
>>> referenced by Config.cpp
>>>             Â
Config.o:(boost::object_cache<boost::re_detail_500::cpp_regex_traits_base<char>,
boost::re_detail_500::cpp_regex_traits_implementation<char>
>::get(boost::re_detail_500::cpp_regex_traits_base<char> const&,
unsigned long))
>>> referenced by Config.cpp
>>>             Â
Config.o:(boost::cpp_regex_traits<char>::get_catalog_name())
>>> referenced by Config.cpp
>>>             Â
Config.o:(boost::re_detail_500::save_state_init::~save_state_init())
>>> referenced 2 more times

ld: error: undefined symbol:
boost::scoped_static_mutex_lock::~scoped_static_mutex_lock()
>>> referenced by Config.cpp
>>>             Â
Config.o:(boost::object_cache<boost::re_detail_500::cpp_regex_traits_base<char>,
boost::re_detail_500::cpp_regex_traits_implementation<char>
>::get(boost::re_detail_500::cpp_regex_traits_base<char> const&,
unsigned long))
>>> referenced by Config.cpp
>>>             Â
Config.o:(boost::object_cache<boost::re_detail_500::cpp_regex_traits_base<char>,
boost::re_detail_500::cpp_regex_traits_implementation<char>
>::get(boost::re_detail_500::cpp_regex_traits_base<char> const&,
unsigned long))
>>> referenced by Config.cpp
>>>             Â
Config.o:(boost::cpp_regex_traits<char>::get_catalog_name())
>>> referenced 5 more times
c++: error: linker command failed with exit code 1 (use -v to see
invocation)


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