brpc
brpc copied to clipboard
gflags(2.1.2-3),g++( 4:5.3.1-1ubuntu1) protobuf( 2.6.1-1.3) Linux make编译错误
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 (更多上下文/截图) 无
项目没人维护了吗
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?
检查下你的环境里面是不是有多个不同版本的gflags
没有呀,只有一个gflags
检查下你的环境里面是不是有多个不同版本的gflags
没有呀,只有一个gflags
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#
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
只安装了一个,符号表如上边
看起来是linker没有找到gflags,用cmake的话,看下CMakeCache.txt里面GFLAGS_LIBRARY=是不是正确找到了。如果都设置了,试一下mkdir build; cmake ..; make VERBOSE=1; 在链接的时候看下gflags有没有被加上去
我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
手动安装到了/user/local/lib目录下
忽略吧,谢谢各位,问题已经解决
求问怎么解决的?我也遇到了
这个问题我解决了,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
我也遇到一模一样的问题了 怎么解决的?
换一下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.
ABI问题,编译gflags时可以在cmakelists 中添加 add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) 解决