brpc icon indicating copy to clipboard operation
brpc copied to clipboard

gflags(2.1.2-3),g++( 4:5.3.1-1ubuntu1) protobuf( 2.6.1-1.3) Linux make编译错误

Open kevinmgyu opened this issue 5 years ago • 17 comments

Describe the bug (描述bug) home/ubuntu/kevinmgyu/brpc/src/butil/logging.cc:1388: undefined reference to google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))' libbrpc.a(variable.o): In function bvar::dumping_thread(void*)': /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:706: undefined reference to google::GetCommandLineOption(char const*, std::string*)' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:711: undefined reference to google::GetCommandLineOption(char const*, std::string*)' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:716: undefined reference to google::GetCommandLineOption(char const*, std::string*)' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:720: undefined reference to google::GetCommandLineOption(char const*, std::string*)' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:724: undefined reference to google::GetCommandLineOption(char const*, std::string*)' libbrpc.a(variable.o): In function __static_initialization_and_destruction_0': /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:827: undefined reference to google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:829: undefined reference to google::RegisterFlagValidator(std::string const*, bool ()(char const, std::string const&))' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:831: undefined reference to google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:833: undefined reference to google::RegisterFlagValidator(std::string const*, bool ()(char const, std::string const&))' /home/ubuntu/kevinmgyu/brpc/src/bvar/variable.cpp:835: undefined reference to google::RegisterFlagValidator(std::string const*, bool (*)(char const*, std::string const&))' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function google::protobuf::internal::StringTypeTraits::Get(int, google::protobuf::internal::ExtensionSet const&, std::string const&)': /usr/local/include/google/protobuf/extension_set.h:855: undefined reference to google::protobuf::internal::ExtensionSet::GetString(int, std::string const&) const' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function mcpack2pb::field_to_string(google::protobuf::FieldDescriptor const*)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:65: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:69: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function mcpack2pb::generate_declarations(std::set<std::string, std::less<std::string>, std::allocator<std::string> > const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> > const&, google::protobuf::io::Printer&)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:193: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:200: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' src/mcpack2pb/generator.o: In function mcpack2pb::generate_parsing(google::protobuf::Descriptor const*, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, google::protobuf::io::Printer&)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:273: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:489: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:493: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function mcpack2pb::generate_parsing(google::protobuf::Descriptor const*, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, google::protobuf::io::Printer&)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:566: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:575: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:581: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:644: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:517: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:505: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:499: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:511: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:544: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:545: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:523: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:529: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:535: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:563: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o:/home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:484: more undefined references to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' follow src/mcpack2pb/generator.o: In function mcpack2pb::generate_parsing(google::protobuf::Descriptor const*, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, google::protobuf::io::Printer&)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:283: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function mcpack2pb::generate_parsing(google::protobuf::Descriptor const*, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, std::set<std::string, std::lessstd::string, std::allocatorstd::string >&, google::protobuf::io::Printer&)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:380: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:381: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:382: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:470: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:475: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:476: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:377: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:338: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:339: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:313: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:345: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:351: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:307: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o:/home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:301: more undefined references to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' follow src/mcpack2pb/generator.o: In function mcpack2pb::generate_parsing(google::protobuf::Descriptor const*, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, google::protobuf::io::Printer&)': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:406: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:407: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:867: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:871: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:897: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1239: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1248: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1276: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' src/mcpack2pb/generator.o: In function mcpack2pb::McpackToProtobuf::Generate(google::protobuf::FileDescriptor const*, std::string const&, google::protobuf::compiler::GeneratorContext*, std::string*) const': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1403: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1204: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1224: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1255: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1207: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1211: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:945: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:956: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:908: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:908: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:930: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:916: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:916: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:921: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:921: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:903: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o:/home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:903: more undefined references to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' follow src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:988: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:994: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1215: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1224: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1221: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:930: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:930: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1017: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1022: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1027: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1030: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1039: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1153: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1194: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1158: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1148: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1048: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1087: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1127: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1107: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1107: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1112: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1112: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1102: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o:/home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1102: more undefined references to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' follow src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1169: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1235: undefined reference to google::protobuf::FieldDescriptor::message_type() const' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1117: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1117: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1112: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1112: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1204: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1211: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1207: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1096: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1096: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1102: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1102: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1123: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1123: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1044: undefined reference to google::protobuf::FieldDescriptor::message_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:941: undefined reference to google::protobuf::FieldDescriptor::message_type() const' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_registration': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1304: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1316: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1322: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1333: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&, char const*, std::string const&)' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1339: undefined reference to google::protobuf::io::Printer::Print(char const*, char const*, std::string const&)' src/mcpack2pb/generator.o: In function FunctionClosure1': /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/callback.h:167: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1224: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:916: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:921: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1215: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:927: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1221: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:912: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1151: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:930: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1148: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1156: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1167: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:908: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:903: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1161: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1171: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1096: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1117: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1112: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1123: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o: In function Init<const google::protobuf::FieldDescriptor>': /usr/local/include/google/protobuf/stubs/once.h:153: undefined reference to google::protobuf::FieldDescriptor::TypeOnceInit(google::protobuf::FieldDescriptor const*)' src/mcpack2pb/generator.o: In function generate_serializing': /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1102: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' /home/ubuntu/kevinmgyu/brpc/src/mcpack2pb/generator.cpp:1107: undefined reference to google::protobuf::FieldDescriptor::enum_type() const' src/mcpack2pb/generator.o:(.data.rel.ro._ZTVN9mcpack2pb16McpackToProtobufE[_ZTVN9mcpack2pb16McpackToProtobufE]+0x28): undefined reference to google::protobuf::compiler::CodeGenerator::GenerateAll(std::vector<google::protobuf::FileDescriptor const*, std::allocator<google::protobuf::FileDescriptor const*> > const&, std::string const&, google::protobuf::compiler::GeneratorContext*, std::string*) const' /tmp/ccNuFzeT.o: In function protobuf_idl_5foptions_2eproto::protobuf_AssignDescriptors()': idl_options.pb.cc:(.text+0x78): undefined reference to google::protobuf::internal::AssignDescriptors(std::string const&, google::protobuf::internal::MigrationSchema const*, google::protobuf::Message const* const*, unsigned int const*, google::protobuf::MessageFactory*, google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, google::protobuf::ServiceDescriptor const**)' /tmp/ccNuFzeT.o: In function protobuf_idl_5foptions_2eproto::AddDescriptorsImpl()': idl_options.pb.cc:(.text+0x115): undefined reference to google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))' idl_options.pb.cc:(.text+0x11a): undefined reference to protobuf_google_2fprotobuf_2fdescriptor_2eproto::AddDescriptors()' libbrpc.a(gflag.o): In function bvar::GFlag::get_value() const': /home/ubuntu/kevinmgyu/brpc/src/bvar/gflag.cpp:79: undefined reference to google::GetCommandLineOption(char const*, std::string*)' libbrpc.a(gflag.o): In function bvar::GFlag::set_value(char const*)': /home/ubuntu/kevinmgyu/brpc/src/bvar/gflag.cpp:86: undefined reference to google::SetCommandLineOption(char const*, char const*)' collect2: error: ld returned 1 exit status Makefile:229: recipe for target 'protoc-gen-mcpack' failed

To Reproduce (复现方法) $ sh config_brpc.sh --headers=/usr/include --libs=/usr/lib $ make

Expected behavior (期望行为) 编译通过

Versions (各种版本) OS:linux Compiler:g++( 4:5.3.1-1ubuntu1) brpc: git clone直接下载的 protobuf:( 2.6.1-1.3)

Additional context/screenshots (更多上下文/截图)

kevinmgyu avatar Mar 20 '19 12:03 kevinmgyu

项目没人维护了吗

kevinmgyu avatar Mar 21 '19 03:03 kevinmgyu

cmake编译也报类似错误 [ 95%] Linking CXX executable ../output/bin/protoc-gen-mcpack /usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake) ../output/lib/libbrpc.so: undefined reference to google::SetCommandLineOption(char const*, char const*)' ../output/lib/libbrpc.so: undefined reference to google::GetCommandLineOption(char const*, std::string*)' ../output/lib/libbrpc.so: undefined reference to `google::RegisterFlagValidator(std::string const*, bool ()(char const, std::string const&))' collect2: error: ld returned 1 exit status src/CMakeFiles/protoc-gen-mcpack.dir/build.make:103: recipe for target 'output/bin/protoc-gen-mcpack' failed make[2]: *** [output/bin/protoc-gen-mcpack] Error 1 CMakeFiles/Makefile2:245: recipe for target 'src/CMakeFiles/protoc-gen-mcpack.dir/all' failed make[1]: *** [src/CMakeFiles/protoc-gen-mcpack.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2 ///////////////////////////////////////////// 但是静态库的符号表中可以查到这些函数,why?

kevinmgyu avatar Mar 21 '19 03:03 kevinmgyu

检查下你的环境里面是不是有多个不同版本的gflags

chenzhangyi avatar Mar 21 '19 07:03 chenzhangyi

没有呀,只有一个gflags

kevinmgyu avatar Mar 21 '19 11:03 kevinmgyu

检查下你的环境里面是不是有多个不同版本的gflags

没有呀,只有一个gflags

kevinmgyu avatar Mar 21 '19 11:03 kevinmgyu

root@VM-0-12-ubuntu:/usr/lib/x86_64-linux-gnu# find / -name libgflags.a /usr/lib/x86_64-linux-gnu/libgflags.a root@VM-0-12-ubuntu:/usr/lib/x86_64-linux-gnu#

kevinmgyu avatar Mar 22 '19 03:03 kevinmgyu

root@VM-0-12-ubuntu:/usr/lib/x86_64-linux-gnu# nm libgflags.a | grep RegisterFlagValidator 0000000000002fd0 T _ZN6google21RegisterFlagValidatorEPKbPFbPKcbE 00000000000036d0 T _ZN6google21RegisterFlagValidatorEPKdPFbPKcdE 0000000000003190 T _ZN6google21RegisterFlagValidatorEPKiPFbPKciE 0000000000003350 T _ZN6google21RegisterFlagValidatorEPKlPFbPKclE 0000000000003510 T _ZN6google21RegisterFlagValidatorEPKmPFbPKcmE 0000000000003890 T _ZN6google21RegisterFlagValidatorEPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPFbPKcRS6_E

kevinmgyu avatar Mar 22 '19 03:03 kevinmgyu

只安装了一个,符号表如上边

kevinmgyu avatar Mar 22 '19 03:03 kevinmgyu

看起来是linker没有找到gflags,用cmake的话,看下CMakeCache.txt里面GFLAGS_LIBRARY=是不是正确找到了。如果都设置了,试一下mkdir build; cmake ..; make VERBOSE=1; 在链接的时候看下gflags有没有被加上去

zyearn avatar Mar 22 '19 03:03 zyearn

我apt-get移除了所有安装,然后收到安装到了/user/local/lib目录下,然后用上边说的cmake方式编译, /usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

kevinmgyu avatar Mar 22 '19 06:03 kevinmgyu

手动安装到了/user/local/lib目录下

kevinmgyu avatar Mar 22 '19 06:03 kevinmgyu

忽略吧,谢谢各位,问题已经解决

kevinmgyu avatar Mar 22 '19 06:03 kevinmgyu

求问怎么解决的?我也遇到了

chenyinjing avatar Apr 11 '19 06:04 chenyinjing

这个问题我解决了,gflags和protobuf编译的时候没有-fPIC参数,最后链接的时候出的问题。这两个的源代码我自己重新编译了一次,在CMakeFiles.txt的最后加上一行set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")

看起来似乎编译动态库的时候也会有其他问题,所以还是都编译成静态库,做静态链接比较稳妥。 protobuf的cmake参数加上-Dprotobuf_BUILD_SHARED_LIBS=OFF。 gflags的cmake参数加上-DBUILD_SHARED_LIBS=OFF

参考环境:Ubuntu 18.04.2 LTS,gcc/g++ 7.4.0,gflags 2.2.2,protobuf 3.2.1

flily avatar May 08 '19 16:05 flily

我也遇到一模一样的问题了 怎么解决的?

jjahg520 avatar Oct 16 '20 06:10 jjahg520

换一下protonbuf版本,重新编译一下。

------------------ 原始邮件 ------------------ 发件人: "apache/incubator-brpc" <[email protected]>; 发送时间: 2020年10月16日(星期五) 下午2:37 收件人: "apache/incubator-brpc"<[email protected]>; 抄送: "陈银镜"<[email protected]>;"Comment"<[email protected]>; 主题: Re: [apache/incubator-brpc] gflags(2.1.2-3),g++( 4:5.3.1-1ubuntu1) protobuf( 2.6.1-1.3) Linux make编译错误 (#695)

我也遇到一模一样的问题了 怎么解决的?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

chenyinjing avatar Oct 19 '20 00:10 chenyinjing

ABI问题,编译gflags时可以在cmakelists 中添加 add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) 解决

mengyu139 avatar Apr 23 '22 03:04 mengyu139