Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation error on Ubuntu 18.04 #24

Closed
tan-wei opened this issue Apr 16, 2019 · 2 comments
Closed

Compilation error on Ubuntu 18.04 #24

tan-wei opened this issue Apr 16, 2019 · 2 comments

Comments

@tan-wei
Copy link

tan-wei commented Apr 16, 2019

Environment:

  • gcc 7.3.0
  • Boost 1.65 (actually, I also try the latest version 1.70, however, I forget to record the error messages)
  • fizz v2019.04.15.00 (actually, I also try the latest source code, just the same)
    Log of CMake in generate time:
  • folly v2019.04.15.00
-- The CXX compiler identification is GNU 7.3.0
-- The C compiler identification is GNU 7.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found folly: /usr/local
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   system
--   thread
--   filesystem
--   regex
--   context
--   chrono
--   date_time
--   atomic
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.0g")  
-- Found glog: /usr/lib/x86_64-linux-gnu/libglog.so  
-- Found double_conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so  
-- Found librt: /usr/lib/x86_64-linux-gnu/librt.so  
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
-- Found Sodium: /usr/lib/x86_64-linux-gnu/libsodium.so  
-- Found gflags from package config
-- Found libevent: /usr/lib/x86_64-linux-gnu/libevent.so  
-- Found LIBGMOCK: /usr/local/lib/libgmock_main.a  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/winterreise/Downloads/fizz-2019.04.15.00/fizz/build

Then we can see the compiler write a novel in the screen:

[ 27%] Building CXX object CMakeFiles/FizzUtilTest.dir/util/test/FizzUtilTest.cpp.o
/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_107000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match()'
/usr/local/lib/libfolly.a(Uri.cpp.o): In function `boost::re_detail_107000::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:391: undefined reference to `boost::re_detail_107000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > 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_107000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::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_107000::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> > >::find()'
/usr/local/lib/libfolly.a(JSONSchema.cpp.o): In function `boost::re_detail_107000::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:391: undefined reference to `boost::re_detail_107000::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> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::NestedCommandLineApp(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::program_options::variables_map const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>)':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:64: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:64: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:64: undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:86: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:88: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:88: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::addCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (boost::program_options::variables_map const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>)':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:103: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:103: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:103: undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::displayHelp(boost::program_options::variables_map const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:129: undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:175: undefined reference to `boost::program_options::options_description::options() const'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:181: undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:183: undefined reference to `boost::program_options::options_description::options() const'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:185: undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::doRun(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:288: undefined reference to `boost::program_options::variables_map::variables_map()'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:289: undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:320: undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:321: undefined reference to `boost::program_options::notify(boost::program_options::variables_map&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
/usr/local/include/boost/program_options/detail/parsers.hpp:19: undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::options(boost::program_options::options_description const&)':
/usr/local/include/boost/program_options/detail/parsers.hpp:36: undefined reference to `boost::program_options::detail::cmdline::set_options_description(boost::program_options::options_description const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::run()':
/usr/local/include/boost/program_options/detail/parsers.hpp:92: undefined reference to `boost::program_options::detail::cmdline::get_canonical_option_prefix()'
/usr/local/include/boost/program_options/detail/parsers.hpp:93: undefined reference to `boost::program_options::detail::cmdline::run()'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
/usr/local/include/boost/program_options/detail/convert.hpp:79: undefined reference to `boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::variables_map::~variables_map()':
/usr/local/include/boost/program_options/variables_map.hpp:146: undefined reference to `vtable for boost::program_options::variables_map'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<bool>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:240: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:243: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:244: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::getGFlags(folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:288: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:288: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:288: undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<int>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<long>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<unsigned int>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<unsigned long>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<double>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<double>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<unsigned long>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<unsigned int>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<long>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: more undefined references to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' follow
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `boost::program_options::error_with_option_name::~error_with_option_name()':
/usr/local/include/boost/program_options/errors.hpp:124: undefined reference to `vtable for boost::program_options::error_with_option_name'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::allow_unregistered()':
/usr/local/include/boost/program_options/detail/parsers.hpp:70: undefined reference to `boost::program_options::detail::cmdline::allow_unregistered()'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)':
/usr/local/include/boost/program_options/detail/parsers.hpp:28: undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTIN5boost15program_options16validation_errorE[_ZTIN5boost15program_options16validation_errorE]+0x10): undefined reference to `typeinfo for boost::program_options::error_with_option_name'
collect2: error: ld returned 1 exit status
CMakeFiles/AsyncFizzBaseTest.dir/build.make:126: recipe for target 'bin/AsyncFizzBaseTest' failed
make[2]: *** [bin/AsyncFizzBaseTest] Error 1
CMakeFiles/Makefile2:110: recipe for target 'CMakeFiles/AsyncFizzBaseTest.dir/all' failed
make[1]: *** [CMakeFiles/AsyncFizzBaseTest.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 28%] Building CXX object CMakeFiles/FizzUtilTest.dir/test/CMakeTestMain.cpp.o
[ 28%] Linking CXX executable bin/FizzUtilTest
[ 29%] Linking CXX executable bin/fizz
/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_107000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match()'
/usr/local/lib/libfolly.a(Uri.cpp.o): In function `boost::re_detail_107000::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:391: undefined reference to `boost::re_detail_107000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > 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_107000::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::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_107000::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> > >::find()'
/usr/local/lib/libfolly.a(JSONSchema.cpp.o): In function `boost::re_detail_107000::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:391: undefined reference to `boost::re_detail_107000::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> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::NestedCommandLineApp(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::program_options::variables_map const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>)':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:64: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:64: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:64: undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:86: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:88: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:88: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::addCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (boost::program_options::variables_map const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>)':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:103: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:103: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:103: undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::displayHelp(boost::program_options::variables_map const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:129: undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:175: undefined reference to `boost::program_options::options_description::options() const'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:181: undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:183: undefined reference to `boost::program_options::options_description::options() const'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:185: undefined reference to `boost::program_options::operator<<(std::ostream&, boost::program_options::options_description const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `folly::NestedCommandLineApp::doRun(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:288: undefined reference to `boost::program_options::variables_map::variables_map()'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:289: undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:320: undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)'
/home/winterreise/projects/folly/folly/experimental/NestedCommandLineApp.cpp:321: undefined reference to `boost::program_options::notify(boost::program_options::variables_map&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
/usr/local/include/boost/program_options/detail/parsers.hpp:19: undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::options(boost::program_options::options_description const&)':
/usr/local/include/boost/program_options/detail/parsers.hpp:36: undefined reference to `boost::program_options::detail::cmdline::set_options_description(boost::program_options::options_description const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::run()':
/usr/local/include/boost/program_options/detail/parsers.hpp:92: undefined reference to `boost::program_options::detail::cmdline::get_canonical_option_prefix()'
/usr/local/include/boost/program_options/detail/parsers.hpp:93: undefined reference to `boost::program_options::detail::cmdline::run()'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
/usr/local/include/boost/program_options/detail/convert.hpp:79: undefined reference to `boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(NestedCommandLineApp.cpp.o): In function `boost::program_options::variables_map::~variables_map()':
/usr/local/include/boost/program_options/variables_map.hpp:146: undefined reference to `vtable for boost::program_options::variables_map'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<bool>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:240: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:243: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:244: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::getGFlags(folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:288: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:288: undefined reference to `boost::program_options::options_description::m_default_line_length'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:288: undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<int>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<long>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<unsigned int>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<unsigned long>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<double>(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `void folly::(anonymous namespace)::addGFlag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(google::CommandLineFlagInfo&&, boost::program_options::options_description&, folly::ProgramOptionsStyle)':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description::add_options()'
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:213: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<double>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<unsigned long>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<unsigned int>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `folly::(anonymous namespace)::GFlagValueSemanticBase<long>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const':
/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):/home/winterreise/projects/folly/folly/experimental/ProgramOptions.cpp:134: more undefined references to `boost::program_options::invalid_option_value::invalid_option_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' follow
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `boost::program_options::error_with_option_name::~error_with_option_name()':
/usr/local/include/boost/program_options/errors.hpp:124: undefined reference to `vtable for boost::program_options::error_with_option_name'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::allow_unregistered()':
/usr/local/include/boost/program_options/detail/parsers.hpp:70: undefined reference to `boost::program_options::detail::cmdline::allow_unregistered()'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o): In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)':
/usr/local/include/boost/program_options/detail/parsers.hpp:28: undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/local/lib/libfolly.a(ProgramOptions.cpp.o):(.data.rel.ro._ZTIN5boost15program_options16validation_errorE[_ZTIN5boost15program_options16validation_errorE]+0x10): undefined reference to `typeinfo for boost::program_options::error_with_option_name'
collect2: error: ld returned 1 exit status
CMakeFiles/FizzUtilTest.dir/build.make:126: recipe for target 'bin/FizzUtilTest' failed
make[2]: *** [bin/FizzUtilTest] Error 1
CMakeFiles/Makefile2:148: recipe for target 'CMakeFiles/FizzUtilTest.dir/all' failed
make[1]: *** [CMakeFiles/FizzUtilTest.dir/all] Error 2
[ 29%] Linking CXX executable bin/BogoShim
[ 29%] Built target FizzTool
[ 29%] Built target BogoShim
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

How can I do with it? Thanks very much!
Hope you have a good day.

@tan-wei
Copy link
Author

tan-wei commented Apr 16, 2019

Here is the complete build.log.

@tan-wei
Copy link
Author

tan-wei commented Apr 17, 2019

After I worked on the "novel" above last several hours. I find that may be my libboost has got something wrong. Then I find that in Ubuntu, there are many packages named like libboost-xxx in apt-get, so after I remove all the packages manually and reinstall libboost-all-dev, it successes in compiling!
I should apologize for the issue, but I think if someone met the same problem, it will help others.
Hope you have a nice day!

@tan-wei tan-wei closed this as completed Apr 17, 2019
facebook-github-bot pushed a commit that referenced this issue Jun 6, 2024
Summary:
The `VLOG(8)` is not enabled anywhere (it looks like this was mainly for
debugging purposes during development) and this adds a non-trivial amount of
generated code. Each instantiation is distinct since the logging string is
dependent on the NTTP. The VLOG macro itself generates a decent amount of code
to check whether or not the logging level is enabled.

Additionally, downgrade the `CHECK` to a `DCHECK` -- we don't ever expect this
to be hit; the state machine implementations always use an unqualified access
to `Transition` (i.e. nobody ever explicitly writes `EventHandlerBase<SM, SomeOtherState, SomeOtherEvent>::Transition`, which means that the correct state is guaranteed. This also eliminates the
runtime check overhead.

Prior to this diff:
```
0000000000034ac4 <_ZN4fizz2sm16EventHandlerBaseINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE3EJLS4_1EEE10TransitionILS4_1EEEvRNS2_5StateE>:
   34ac4:       d10103ff        sub     sp, sp, #0x40
   34ac8:       a90257fe        stp     x30, x21, [sp, #32]
   34acc:       a9034ff4        stp     x20, x19, [sp, #48]
   34ad0:       d53bd054        mrs     x20, tpidr_el0
   34ad4:       52800035        mov     w21, #0x1                       // #1
   34ad8:       f0fffea2        adrp    x2, b000 <note_end+0xad30>
   34adc:       911ea042        add     x2, x2, #0x7a8
   34ae0:       f9401688        ldr     x8, [x20, #40]
   34ae4:       910003e1        mov     x1, sp
   34ae8:       aa0003f3        mov     x19, x0
   34aec:       f9000fe8        str     x8, [sp, #24]
   34af0:       b90003f5        str     w21, [sp]
   34af4:       94003d92        bl      4413c <_ZN6google12Check_EQImplIN4fizz6client9StateEnumES3_EEPNSt6__ndk112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEERKT_RKT0_PKc>
   34af8:       f9000be0        str     x0, [sp, #16]
   34afc:       b5000140        cbnz    x0, 34b24 <_ZN4fizz2sm16EventHandlerBaseINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE3EJLS4_1EEE10TransitionILS4_1EEEvRNS2_5StateE+0x60>
   34b00:       b9000275        str     w21, [x19]
   34b04:       f9401688        ldr     x8, [x20, #40]
   34b08:       f9400fe9        ldr     x9, [sp, #24]
   34b0c:       eb09011f        cmp     x8, x9
   34b10:       540001c1        b.ne    34b48 <_ZN4fizz2sm16EventHandlerBaseINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE3EJLS4_1EEE10TransitionILS4_1EEEvRNS2_5StateE+0x84>  // b.any
   34b14:       a9434ff4        ldp     x20, x19, [sp, #48]
   34b18:       a94257fe        ldp     x30, x21, [sp, #32]
   34b1c:       910103ff        add     sp, sp, #0x40
   34b20:       d65f03c0        ret
   34b24:       f0fffea1        adrp    x1, b000 <note_end+0xad30>
   34b28:       9114e821        add     x1, x1, #0x53a
   34b2c:       910003e0        mov     x0, sp
   34b30:       910043e3        add     x3, sp, #0x10
   34b34:       52800502        mov     w2, #0x28                       // #40
   34b38:       940084bb        bl      55e24 <_ZN6google15LogMessageFatalC1EPKciRKNS_13CheckOpStringE>
   34b3c:       910003e0        mov     x0, sp
   34b40:       940080a1        bl      54dc4 <_ZN6google10LogMessage6streamEv>
   34b44:       14000002        b       34b4c <_ZN4fizz2sm16EventHandlerBaseINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE3EJLS4_1EEE10TransitionILS4_1EEEvRNS2_5StateE+0x88>
   34b48:       94008c82        bl      57d50 <__stack_chk_fail@plt>
   34b4c:       910003e0        mov     x0, sp
   34b50:       940084b6        bl      55e28 <_ZN6google15LogMessageFatalD1Ev>
```

After this diff:

```
00000000000347e8 <_ZN4fizz2sm16EventHandlerBaseINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE3EJLS4_1EEE10TransitionILS4_1EEEvRNS2_5StateE>:
   347e8:       52800028        mov     w8, #0x1                        // #1
   347ec:       b9000008        str     w8, [x0]
   347f0:       d65f03c0        ret
```

Reviewed By: abakiaydin

Differential Revision: D58162021

fbshipit-source-id: e223ac9902b3c6817ee4e5962292b20bd95c40f7
facebook-github-bot pushed a commit that referenced this issue Jun 6, 2024
…rence

Summary:
Prior to this diff, the `EarlyAppWrite` was taken in by value, which meant that
there were 6 unique event handlers that needed to perform the allocate
stack/move/call/cleanup/exception handling for each call to `handleAppWrite` or
`ignoreEarlyAppWrite`.

This diff changes the signature to take the parameter by reference. This means
that w.r.t the caller, there are no locally scoped variables with non-trivial
destructors, so that the EventHandlers can simply tail call into the function.

Before:
```
0000000000039774 <_ZN4fizz2sm12EventHandlerINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE16EE6handleERKNS2_5StateERNS_5ParamE>:
   39774:       d10143ff        sub     sp, sp, #0x50
   39778:       f9001bfe        str     x30, [sp, #48]
   3977c:       a9044ff4        stp     x20, x19, [sp, #64]
   39780:       d53bd053        mrs     x19, tpidr_el0
   39784:       910003f4        mov     x20, sp
   39788:       f9401669        ldr     x9, [x19, #40]
   3978c:       f90017e9        str     x9, [sp, #40]
   39790:       b9412029        ldr     w9, [x1, #288]
   39794:       71004d3f        cmp     w9, #0x13
   39798:       9a9f0029        csel    x9, x1, xzr, eq  // eq = none
   3979c:       3dc00120        ldr     q0, [x9]
   397a0:       f900053f        str     xzr, [x9, #8]
   397a4:       f940092a        ldr     x10, [x9, #16]
   397a8:       b9401929        ldr     w9, [x9, #24]
   397ac:       3d8003e0        str     q0, [sp]
   397b0:       f9000bea        str     x10, [sp, #16]
   397b4:       b9001be9        str     w9, [sp, #24]
   397b8:       910003e1        mov     x1, sp
   397bc:       94000011        bl      39800 <_ZN4fizz2smL19handleEarlyAppWriteERKNS_6client5StateENS_13EarlyAppWriteE>
   397c0:       b27d0280        orr     x0, x20, #0x8
   397c4:       97ffb75a        bl      2752c <_ZNSt6__ndk110unique_ptrIN5folly5IOBufENS_14default_deleteIS2_EEED2Ev>
   397c8:       f9401668        ldr     x8, [x19, #40]
   397cc:       f94017e9        ldr     x9, [sp, #40]
   397d0:       eb09011f        cmp     x8, x9
   397d4:       540000a1        b.ne    397e8 <_ZN4fizz2sm12EventHandlerINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE16EE6handleERKNS2_5StateERNS_5ParamE+0x74>  // b.any
   397d8:       a9444ff4        ldp     x20, x19, [sp, #64]
   397dc:       f9401bfe        ldr     x30, [sp, #48]
   397e0:       910143ff        add     sp, sp, #0x50
   397e4:       d65f03c0        ret
   397e8:       9400770e        bl      57420 <__stack_chk_fail@plt>
   397ec:       aa0003f3        mov     x19, x0
   397f0:       b27d0280        orr     x0, x20, #0x8
   397f4:       97ffb74e        bl      2752c <_ZNSt6__ndk110unique_ptrIN5folly5IOBufENS_14default_deleteIS2_EEED2Ev>
   397f8:       aa1303e0        mov     x0, x19
   397fc:       940078d1        bl      57b40 <__wrap__Unwind_Resume@plt>

```

After:
```
0000000000039714 <_ZN4fizz2sm12EventHandlerINS_6client11ClientTypesELNS2_9StateEnumE1ELNS_5EventE16EE6handleERKNS2_5StateERNS_5ParamE>:
   39714:       14000001        b       39718 <_ZN4fizz2smL19handleEarlyAppWriteERKNS_6client5StateERNS_5ParamE>
```

Reviewed By: zalecodez

Differential Revision: D58164235

fbshipit-source-id: 9d06f5bf7f1a2c931131597f53ef6c3cd734fe46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant