[OSRM-talk] error: undefined reference to 'boost::re_detail::cpp_regex_traits_implementation<char>::transform

Mateusz Loskot mateusz at loskot.net
Wed Oct 18 16:30:39 UTC 2017


Hi,

I'm building the current master on Ubuntu 16.04 (inside Bash on Windows),
using GCC 7.2 and 6.3 and Boost 1.58 - all installed from Xenial packages.
I'm experiencing the linker failure for libosrm_extract.a around libboost_regex.

It has been a while (~6 weeks) since I built OSRM master last time,
but the OSRM used to build fine in that environment.

I'm puzzled, because I see the Travis CI builds are perfectly green.

I wonder if anyone experienced similar issue.

Below, I paste the g++ command with link error.
As you can see all of the Boost libraries (and some others) are repeated,
but that should not be relevant to the issue. In fact, I tried w/o the redundant
libs to confirm the linking still fails.


/usr/bin/g++-6    -Wall -Wextra -pedantic -Wuninitialized
-Wunreachable-code -Wstrict-overflow=1 -U_FORTIFY_SOURCE
-D_FORTIFY_SOURCE=2 -fdiagnostics-color=auto -fPIC
-ftemplate-depth=1024 -ffunction-sections -fdata-sections -std=c++14
-O3 -DNDEBUG   -fuse-ld=gold -Wl,--disable-new-dtags
-Wl,--gc-sections -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common
CMakeFiles/osrm-extract.dir/src/tools/extract.cpp.o  -o osrm-extract
-rdynamic libosrm_extract.a -lboost_program_options -lbz2
-lboost_regex -lboost_date_time -lboost_chrono -lboost_filesystem
-lboost_iostreams -lboost_thread -lboost_system -lpthread -lexpat
-llua5.2 -lm -lz -ltbb -ltbbmalloc -lbz2 -lboost_regex
-lboost_date_time -lboost_chrono -lboost_filesystem -lboost_iostreams
-lboost_thread -lboost_system -lpthread -lexpat -llua5.2 -lm -lz -ltbb
-ltbbmalloc
libosrm_extract.a(restriction_parser.cpp.o):restriction_parser.cpp:function
__gnu_cxx::__normal_iterator<char const*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >
boost::re_detail::re_is_set_member<__gnu_cxx::__normal_iterator<char
const*, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, char, boost::regex_traits<char,
boost::cpp_regex_traits<char> >, unsigned
int>(__gnu_cxx::__normal_iterator<char const*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, boost::re_detail::re_set_long<unsigned int>
const*, boost::re_detail::regex_data<char, boost::regex_traits<char,
boost::cpp_regex_traits<char> > > const&, bool): error: undefined
reference to 'boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char
const*, char const*) const'
libosrm_extract.a(restriction_parser.cpp.o):restriction_parser.cpp:function
__gnu_cxx::__normal_iterator<char const*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >
boost::re_detail::re_is_set_member<__gnu_cxx::__normal_iterator<char
const*, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, char, boost::regex_traits<char,
boost::cpp_regex_traits<char> >, unsigned
int>(__gnu_cxx::__normal_iterator<char const*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, boost::re_detail::re_set_long<unsigned int>
const*, boost::re_detail::regex_data<char, boost::regex_traits<char,
boost::cpp_regex_traits<char> > > const&, bool): g[abi:cxx11](char
const*, char const*) const'

-- 
Mateusz Loskot, http://mateusz.loskot.net



More information about the OSRM-talk mailing list