facebookincubator/fizz

build error for target 'bin/FizzUtilTest'

skyelves opened this issue · 1 comments

When I run make, the following error occurs. I have devoted massive time to it but still could not solve the problem.
build error.txt

At first I thought it was the problem with boost and actually I do find two versions of boost on the server(1.58 and 1.65). So I remove the 1.58 version and run it again. The same error occurs.
When I look into the /usr/local/include/boost/regex/v4/regex_match.hpp, the 50th line is BOOST_REGEX_DETAIL_NS::perl_matcher<BidiIterator, Allocator, traits> matcher(first, last, m, e, flags, first);, which previously was boost::re_detail::perl_matche.... I think I have already figured out the problem but it doesn't work.

gcc (Ubuntu 7.5.0-3ubuntu1 18.04) 7.5.0
g++ (Ubuntu 7.5.0-3ubuntu1 18.04) 7.5.0
Boost version:1.65.1

This is the error:
[ 23%] Built target fizz
[ 25%] Built target FizzTool
[ 26%] Built target BogoShim
[ 28%] Built target fizz_test_support
[ 29%] Linking CXX executable bin/FizzUtilTest
/usr/local/lib/libfolly.a(Uri.cpp.o): In function bool boost::regex_match<char const*, 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*, 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)': /usr/local/include/boost/regex/v4/regex_match.hpp:50: undefined reference to boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits > >::match()'
/usr/local/lib/libfolly.a(Uri.cpp.o): In function boost::re_detail::perl_matcher<char const*, 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*, 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*)': /usr/local/include/boost/regex/v4/perl_matcher.hpp:365: undefined reference to boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > > const&, boost::regex_constants::_match_flags)'
/usr/local/lib/libfolly.a(Uri.cpp.o): In function bool boost::regex_search<char const*, 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*, 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*)': /usr/local/include/boost/regex/v4/regex_search.hpp:56: undefined reference to boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits > >::find()'
/usr/local/lib/libfolly.a(JSONSchema.cpp.o): In function bool boost::regex_search<__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> > >(__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::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)': /usr/local/include/boost/regex/v4/regex_search.hpp:145: undefined reference to boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, boost::regex_traits<char, boost::cpp_regex_traits > >::find()'
/usr/local/lib/libfolly.a(JSONSchema.cpp.o): In function boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__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::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)': /usr/local/include/boost/regex/v4/perl_matcher.hpp:365: undefined reference to boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, boost::regex_traits<char, boost::cpp_regex_traits > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > > const&, boost::regex_constants::_match_flags)'
collect2: error: ld returned 1 exit status
CMakeFiles/FizzUtilTest.dir/build.make:136: recipe for target 'bin/FizzUtilTest' failed
make[2]: *** [bin/FizzUtilTest] Error 1
CMakeFiles/Makefile2:270: recipe for target 'CMakeFiles/FizzUtilTest.dir/all' failed
make[1]: *** [CMakeFiles/FizzUtilTest.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2