You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brpc.apache.org by GitBox <gi...@apache.org> on 2021/10/23 08:01:00 UTC

[GitHub] [incubator-brpc] Gliushuai opened a new issue #1587: 编译报错

Gliushuai opened a new issue #1587:
URL: https://github.com/apache/incubator-brpc/issues/1587


   **Describe the bug (描述bug)**
   按照文档编译,yum源里没有,install不成功。
   所有的依赖库都自己安装,包括 gflags。
   报错信息见下文. 网上搜不到gflags的 -fPIC 如何指定,
   请问贵团队对gflas依赖的版本是多少,我自己安装的最新版
   
   **To Reproduce (复现方法)**
   
   
   **Expected behavior (期望行为)**
   
   
   **Versions (各种版本)**
   OS:CentOS 7.2
   Compiler: gcc 9.1.0
   brpc:
   protobuf:
   
   **Additional context/screenshots (更多上下文/截图)**
   
   [ 86%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/policy/weighted_randomized_load_balancer.cpp.o
   [ 86%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/policy/weighted_round_robin_load_balancer.cpp.o
   [ 87%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/progressive_attachment.cpp.o
   [ 87%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/protocol.cpp.o
   [ 87%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/redis.cpp.o
   [ 88%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/redis_command.cpp.o
   [ 88%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/redis_reply.cpp.o
   [ 88%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/reloadable_flags.cpp.o
   [ 88%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/restful.cpp.o
   [ 89%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/retry_policy.cpp.o
   [ 89%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/rpc_dump.cpp.o
   [ 89%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/rtmp.cpp.o
   [ 90%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/selective_channel.cpp.o
   [ 90%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/serialized_request.cpp.o
   [ 90%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/server.cpp.o
   [ 91%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/server_id.cpp.o
   [ 91%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/simple_data_pool.cpp.o
   [ 91%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/socket.cpp.o
   [ 91%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/socket_map.cpp.o
   [ 92%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/span.cpp.o
   [ 92%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/ssl_options.cpp.o
   [ 92%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/stream.cpp.o
   [ 93%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/trackme.cpp.o
   [ 93%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/ts.cpp.o
   [ 93%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/uri.cpp.o
   [ 93%] Built target SOURCES_LIB
   [ 94%] Linking CXX static library ../output/lib/libbrpc.a
   [ 94%] Linking CXX shared library ../output/lib/libbrpc.so
   /usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
   /usr/local/lib/libgflags.a: error adding symbols: Bad value
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/lib/libbrpc.so] Error 1
   gmake[1]: *** [src/CMakeFiles/brpc-shared.dir/all] Error 2
   gmake[1]: *** Waiting for unfinished jobs....
   [ 94%] Built target brpc-static
   gmake: *** [all] Error 2


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org
For additional commands, e-mail: dev-help@brpc.apache.org


[GitHub] [incubator-brpc] TousakaRin commented on issue #1587: 编译报错

Posted by GitBox <gi...@apache.org>.
TousakaRin commented on issue #1587:
URL: https://github.com/apache/incubator-brpc/issues/1587#issuecomment-950484577


   https://github.com/apache/incubator-brpc/issues/1586
   
   gflag编译gflags.a的时候默认不会添加-fPIC选项,这会导致打包-libbrpc.so时出错,一种解决办法是,通过源代码编译gflags,然后执行cmake的时候,添加选项CXXFLAGS=-fPIC,或者export CXXFLAGS=-fPIC即可加上-fPIC,你也可以删掉libgflags.a,这样就会通过动态库的方式链接gflags(如果有的话)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org
For additional commands, e-mail: dev-help@brpc.apache.org


[GitHub] [incubator-brpc] Gliushuai commented on issue #1587: 编译报错

Posted by GitBox <gi...@apache.org>.
Gliushuai commented on issue #1587:
URL: https://github.com/apache/incubator-brpc/issues/1587#issuecomment-950118132


   生成了gflag的动态库之后,报错如下,不知道咋办了
   
   [ 98%] Linking CXX executable ../../output/bin/rpc_view
   [ 99%] Linking CXX executable ../../output/bin/rpc_replay
   CMakeFiles/parallel_http.dir/parallel_http.cpp.o: In function `_GLOBAL__sub_I_parallel_http.cpp':
   /home/work/project/incubator-brpc-master/tools/parallel_http/parallel_http.cpp:28: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(logging.cc.o): In function `_GLOBAL__sub_I_logging.cc':
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:126: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:1472: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(consul_naming_service.cpp.o): In function `_GLOBAL__sub_I_consul_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:37: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:42: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:50: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o): In function `_GLOBAL__sub_I_discovery_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:40: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o):/home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:42: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `brpc::RpcDumpContext::SaveFlags()':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:142: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `_GLOBAL__sub_I_rpc_dump.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:52: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::SpanDB::Open()':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:488: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:490: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:497: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:499: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::Span::dump_and_destroy(unsigned long)':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:660: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:674: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `_GLOBAL__sub_I_span.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:43: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(trackme.cpp.o): In function `_GLOBAL__sub_I_trackme.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/trackme.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `bvar::dumping_thread(void*)':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:705: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:710: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:715: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:719: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:723: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `_GLOBAL__sub_I_variable.cpp':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:674: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:675: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:677: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:679: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:680: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:826: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:828: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:830: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:832: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:834: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(flags_service.cpp.o): In function `brpc::FlagsService::default_method(google::protobuf::RpcController*, brpc::FlagsRequest const*, brpc::FlagsResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/flags_service.cpp:173: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::enable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:68: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::disable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:97: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(health_check.cpp.o): In function `_GLOBAL__sub_I_health_check.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/details/health_check.cpp:34: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(rtmp_protocol.cpp.o): In function `_GLOBAL__sub_I_rtmp_protocol.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/rtmp_protocol.cpp:60: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(common.cpp.o): In function `_GLOBAL__sub_I_common.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/common.cpp:33: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::get_value() const':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:81: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::set_value(char const*)':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:88: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/bin/parallel_http] Error 1
   gmake[1]: *** [tools/parallel_http/CMakeFiles/parallel_http.dir/all] Error 2
   gmake[1]: *** Waiting for unfinished jobs....
   [100%] Building CXX object tools/rpc_press/CMakeFiles/rpc_press.dir/rpc_press_impl.cpp.o
   [100%] Linking CXX executable ../output/bin/protoc-gen-mcpack
   CMakeFiles/trackme_server.dir/trackme_server.cpp.o: In function `_GLOBAL__sub_I_trackme_server.cpp':
   /home/work/project/incubator-brpc-master/tools/trackme_server/trackme_server.cpp:29: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(logging.cc.o): In function `_GLOBAL__sub_I_logging.cc':
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:126: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:1472: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(trackme.cpp.o): In function `_GLOBAL__sub_I_trackme.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/trackme.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `bvar::dumping_thread(void*)':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:705: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:710: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:715: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:719: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:723: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `_GLOBAL__sub_I_variable.cpp':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:674: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:675: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:677: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:679: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:680: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:826: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:828: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:830: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:832: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:834: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(flags_service.cpp.o): In function `brpc::FlagsService::default_method(google::protobuf::RpcController*, brpc::FlagsRequest const*, brpc::FlagsResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/flags_service.cpp:173: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::enable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:68: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::disable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:97: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(health_check.cpp.o): In function `_GLOBAL__sub_I_health_check.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/details/health_check.cpp:34: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(consul_naming_service.cpp.o): In function `_GLOBAL__sub_I_consul_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:37: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:42: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:50: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o):/home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:40: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `brpc::RpcDumpContext::SaveFlags()':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:142: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `_GLOBAL__sub_I_rpc_dump.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:52: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::SpanDB::Open()':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:488: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:490: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:497: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:499: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::Span::dump_and_destroy(unsigned long)':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:660: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:674: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `_GLOBAL__sub_I_span.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:43: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(common.cpp.o): In function `_GLOBAL__sub_I_common.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/common.cpp:33: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(rtmp_protocol.cpp.o): In function `_GLOBAL__sub_I_rtmp_protocol.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/rtmp_protocol.cpp:60: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::get_value() const':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:81: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::set_value(char const*)':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:88: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/bin/trackme_server] Error 1
   gmake[1]: *** [tools/trackme_server/CMakeFiles/trackme_server.dir/all] Error 2
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
   ../output/lib/libbrpc.so: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
   ../output/lib/libbrpc.so: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)@GLIBCXX_3.4.21'
   ../output/lib/libbrpc.so: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
   ../output/lib/libbrpc.so: undefined reference to `leveldb::Status::ToString() const'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned long, char)@GLIBCXX_3.4.21'
   ../output/lib/libbrpc.so: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../output/lib/libbrpc.so: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /usr/local/lib/libgflags.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/bin/protoc-gen-mcpack] Error 1
   gmake[1]: *** [src/CMakeFiles/protoc-gen-mcpack.dir/all] Error 2
   CMakeFiles/rpc_view.dir/rpc_view.cpp.o: In function `main':
   /home/work/project/incubator-brpc-master/tools/rpc_view/rpc_view.cpp:164: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /home/work/project/incubator-brpc-master/tools/rpc_view/rpc_view.cpp:159: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   CMakeFiles/rpc_view.dir/rpc_view.cpp.o: In function `_GLOBAL__sub_I_rpc_view.cpp':
   /home/work/project/incubator-brpc-master/tools/rpc_view/rpc_view.cpp:26: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   CMakeFiles/rpc_view.dir/rpc_view.cpp.o: In function `ViewServiceImpl::default_method(google::protobuf::RpcController*, HttpRequest const*, HttpResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/tools/rpc_view/rpc_view.cpp:85: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /home/work/project/incubator-brpc-master/tools/rpc_view/rpc_view.cpp:91: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(logging.cc.o): In function `_GLOBAL__sub_I_logging.cc':
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:126: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:1472: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(consul_naming_service.cpp.o): In function `_GLOBAL__sub_I_consul_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:37: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:42: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:50: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o): In function `_GLOBAL__sub_I_discovery_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:40: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o):/home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:42: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `brpc::RpcDumpContext::SaveFlags()':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:142: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `_GLOBAL__sub_I_rpc_dump.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:52: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::SpanDB::Open()':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:488: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:490: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:497: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:499: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::Span::dump_and_destroy(unsigned long)':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:660: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:674: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `_GLOBAL__sub_I_span.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:43: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(trackme.cpp.o): In function `_GLOBAL__sub_I_trackme.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/trackme.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `bvar::dumping_thread(void*)':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:705: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:710: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:715: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:719: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:723: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `_GLOBAL__sub_I_variable.cpp':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:674: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:675: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:677: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:679: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:680: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:826: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:828: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:830: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:832: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:834: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(flags_service.cpp.o): In function `brpc::FlagsService::default_method(google::protobuf::RpcController*, brpc::FlagsRequest const*, brpc::FlagsResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/flags_service.cpp:173: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::enable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:68: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::disable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:97: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(health_check.cpp.o): In function `_GLOBAL__sub_I_health_check.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/details/health_check.cpp:34: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(rtmp_protocol.cpp.o): In function `_GLOBAL__sub_I_rtmp_protocol.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/rtmp_protocol.cpp:60: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(common.cpp.o): In function `_GLOBAL__sub_I_common.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/common.cpp:33: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::get_value() const':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:81: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::set_value(char const*)':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:88: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/bin/rpc_view] Error 1
   gmake[1]: *** [tools/rpc_view/CMakeFiles/rpc_view.dir/all] Error 2
   ../../output/lib/libbrpc.a(logging.cc.o): In function `_GLOBAL__sub_I_logging.cc':
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:126: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:1472: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `bvar::dumping_thread(void*)':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:705: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:710: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:715: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:719: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:723: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `_GLOBAL__sub_I_variable.cpp':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:674: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:675: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:677: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:679: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:680: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:826: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:828: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:830: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:832: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:834: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(consul_naming_service.cpp.o): In function `_GLOBAL__sub_I_consul_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:37: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:42: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:50: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o): In function `_GLOBAL__sub_I_discovery_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:40: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o):/home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:42: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `brpc::RpcDumpContext::SaveFlags()':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:142: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `_GLOBAL__sub_I_rpc_dump.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:52: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::SpanDB::Open()':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:488: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:490: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:497: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:499: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::Span::dump_and_destroy(unsigned long)':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:660: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:674: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `_GLOBAL__sub_I_span.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:43: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(trackme.cpp.o): In function `_GLOBAL__sub_I_trackme.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/trackme.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(flags_service.cpp.o): In function `brpc::FlagsService::default_method(google::protobuf::RpcController*, brpc::FlagsRequest const*, brpc::FlagsResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/flags_service.cpp:173: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::enable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:68: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::disable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:97: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(health_check.cpp.o): In function `_GLOBAL__sub_I_health_check.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/details/health_check.cpp:34: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   CMakeFiles/rpc_replay.dir/rpc_replay.cpp.o: In function `_GLOBAL__sub_I_rpc_replay.cpp':
   /home/work/project/incubator-brpc-master/tools/rpc_replay/rpc_replay.cpp:32: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/tools/rpc_replay/rpc_replay.cpp:37: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/tools/rpc_replay/rpc_replay.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/tools/rpc_replay/rpc_replay.cpp:40: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(rtmp_protocol.cpp.o):/home/work/project/incubator-brpc-master/src/brpc/policy/rtmp_protocol.cpp:60: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::get_value() const':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:81: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::set_value(char const*)':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:88: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/bin/rpc_replay] Error 1
   gmake[1]: *** [tools/rpc_replay/CMakeFiles/rpc_replay.dir/all] Error 2
   [100%] Linking CXX executable ../../output/bin/rpc_press
   ../../output/lib/libbrpc.a(logging.cc.o): In function `_GLOBAL__sub_I_logging.cc':
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:126: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/butil/logging.cc:1472: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `bvar::dumping_thread(void*)':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:705: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:710: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:715: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:719: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:723: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(variable.cpp.o): In function `_GLOBAL__sub_I_variable.cpp':
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:674: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:675: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:677: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:679: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:680: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:826: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:828: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:830: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:832: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   /home/work/project/incubator-brpc-master/src/bvar/variable.cpp:834: undefined reference to `google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))'
   ../../output/lib/libbrpc.a(consul_naming_service.cpp.o): In function `_GLOBAL__sub_I_consul_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:37: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:42: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/src/brpc/policy/consul_naming_service.cpp:50: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o): In function `_GLOBAL__sub_I_discovery_naming_service.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:40: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(discovery_naming_service.cpp.o):/home/work/project/incubator-brpc-master/src/brpc/policy/discovery_naming_service.cpp:42: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `brpc::RpcDumpContext::SaveFlags()':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:142: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(rpc_dump.cpp.o): In function `_GLOBAL__sub_I_rpc_dump.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/rpc_dump.cpp:52: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::SpanDB::Open()':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:488: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:490: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:497: undefined reference to `leveldb::DB::Open(leveldb::Options const&, std::string const&, leveldb::DB**)'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:499: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `brpc::Span::dump_and_destroy(unsigned long)':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:660: undefined reference to `leveldb::Status::ToString() const'
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:674: undefined reference to `leveldb::Status::ToString() const'
   ../../output/lib/libbrpc.a(span.cpp.o): In function `_GLOBAL__sub_I_span.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/span.cpp:43: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(trackme.cpp.o): In function `_GLOBAL__sub_I_trackme.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/trackme.cpp:39: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   ../../output/lib/libbrpc.a(flags_service.cpp.o): In function `brpc::FlagsService::default_method(google::protobuf::RpcController*, brpc::FlagsRequest const*, brpc::FlagsResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/flags_service.cpp:173: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::enable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:68: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(rpcz_service.cpp.o): In function `brpc::RpczService::disable(google::protobuf::RpcController*, brpc::RpczRequest const*, brpc::RpczResponse*, google::protobuf::Closure*)':
   /home/work/project/incubator-brpc-master/src/brpc/builtin/rpcz_service.cpp:97: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   ../../output/lib/libbrpc.a(health_check.cpp.o): In function `_GLOBAL__sub_I_health_check.cpp':
   /home/work/project/incubator-brpc-master/src/brpc/details/health_check.cpp:34: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   CMakeFiles/rpc_press.dir/rpc_press.cpp.o: In function `_GLOBAL__sub_I_rpc_press.cpp':
   /home/work/project/incubator-brpc-master/tools/rpc_press/rpc_press.cpp:28: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/tools/rpc_press/rpc_press.cpp:29: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/tools/rpc_press/rpc_press.cpp:30: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   /home/work/project/incubator-brpc-master/tools/rpc_press/rpc_press.cpp:31: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)'
   CMakeFiles/rpc_press.dir/rpc_press.cpp.o:/home/work/project/incubator-brpc-master/tools/rpc_press/rpc_press.cpp:32: more undefined references to `google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)' follow
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::get_value() const':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:81: undefined reference to `google::GetCommandLineOption(char const*, std::string*)'
   ../../output/lib/libbrpc.a(gflag.cpp.o): In function `bvar::GFlag::set_value(char const*)':
   /home/work/project/incubator-brpc-master/src/bvar/gflag.cpp:88: undefined reference to `google::SetCommandLineOption(char const*, char const*)'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::insert(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear()@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::length() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::capacity() const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::end()@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned long, char)@GLIBCXX_3.4.21'
   /usr/local/lib/libgflags.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
   /usr/local/lib/libgflags.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const@GLIBCXX_3.4.21'
   /usr/local/lib/libleveldb.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
   collect2: error: ld returned 1 exit status
   gmake[2]: *** [output/bin/rpc_press] Error 1
   gmake[1]: *** [tools/rpc_press/CMakeFiles/rpc_press.dir/all] Error 2
   gmake: *** [all] Error 2


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org
For additional commands, e-mail: dev-help@brpc.apache.org