Hi guys, here I come again with errors I can't figure out.
Basically I copied the code for "writing a message" from tutorial and pasted it into write.cc under directory "examples". write.cc is supposed to invoke addressbook When I try to compile write.cc, I got the following: protobuf-2.3.0/examples$ c++ write.cc `pkg-config --cflags --libs protobuf` /tmp/cc62Lqqa.o: In function `main': write.cc:(.text+0x45c): undefined reference to `tutorial::AddressBook::AddressBook()' write.cc:(.text+0x673): undefined reference to `tutorial::AddressBook::~AddressBook()' write.cc:(.text+0x692): undefined reference to `tutorial::AddressBook::~AddressBook()' /tmp/cc62Lqqa.o: In function `google::protobuf::internal::GenericTypeHandler<tutorial::Person>::New()': write.cc: (.text._ZN6google8protobuf8internal18GenericTypeHandlerIN8tutorial6PersonEE3NewEv[google::protobuf::internal::GenericTypeHandler<tutorial::Person>::New()] +0x1c): undefined reference to `tutorial::Person::Person()' /tmp/cc62Lqqa.o: In function `tutorial::Person::mutable_name()': write.cc: (.text._ZN8tutorial6Person12mutable_nameEv[tutorial::Person::mutable_name()] +0x25): undefined reference to `tutorial::Person::_default_name_' /tmp/cc62Lqqa.o: In function `tutorial::Person::set_email(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': write.cc: (.text._ZN8tutorial6Person9set_emailERKSs[tutorial::Person::set_email(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x29): undefined reference to `tutorial::Person::_default_email_' /tmp/cc62Lqqa.o: In function `tutorial::Person_PhoneNumber::set_number(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': write.cc: (.text._ZN8tutorial18Person_PhoneNumber10set_numberERKSs[tutorial::Person_PhoneNumber::set_number(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x29): undefined reference to `tutorial::Person_PhoneNumber::_default_number_' /tmp/cc62Lqqa.o: In function `google::protobuf::internal::GenericTypeHandler<tutorial::Person_PhoneNumber>::New()': write.cc: (.text._ZN6google8protobuf8internal18GenericTypeHandlerIN8tutorial18Person_PhoneNumberEE3NewEv[google::protobuf::internal::GenericTypeHandler<tutorial::Person_PhoneNumber>::New()] +0x1c): undefined reference to `tutorial::Person_PhoneNumber::Person_PhoneNumber()' /tmp/cc62Lqqa.o: In function `tutorial::Person_PhoneNumber::set_type(tutorial::Person_PhoneType)': write.cc: (.text._ZN8tutorial18Person_PhoneNumber8set_typeENS_16Person_PhoneTypeE[tutorial::Person_PhoneNumber::set_type(tutorial::Person_PhoneType)] +0x13): undefined reference to `tutorial::Person_PhoneType_IsValid(int)' collect2: ld returned 1 exit status protobuf-2.3.0/examples$ What did I do wrong? Thanks a lot Zhang Bo On Apr 7, 9:20 am, Bo Zhang <[email protected]> wrote: > Following up to the previous test failure. I have cleaned to old one > and downloaded a fresh one. This time make check passed all test. > > I'm trying to make install and testing examples now. I will post the > result later > > However it would be nice to understand the reason behind the failure. > > Thanks > > Zhang Bo > > On Apr 7, 8:57 am, Bo Zhang <[email protected]> wrote: > > > > > Hi Steven, > > > Thanks for your reply. In deed I was following the instructions. > > > Anyway I had a rerun. Make check fails one test (again, which I forgot > > to mention before), as shown below: > > > [==========] 729 tests from 102 test cases ran. (2899 ms total) > > [ PASSED ] 728 tests. > > [ FAILED ] 1 test, listed below: > > [ FAILED ] BootstrapTest.GeneratedDescriptorMatches > > . > > . > > . > > . > > ========================================== > > 1 of 5 tests failed > > Please report to [email protected] > > ========================================== > > > Could anyone explain to me why this test fails? Seems to me that > > there's something wrong with version. How could I fix this? > > > Thanks a lot > > > Zhang Bo > > > On Apr 6, 10:07 pm, Steven Ong <[email protected]> wrote: > > > > Hi, > > > > You need to read and follow the instruction from the <DIR>/README.txt > > > (<DIR> > > > is where your protobuf-x.x.x resding) file to > > > configure/compile/check/install the package before you can use it (That > > > for > > > the C++ portion). For the Java portion, you need to read and follow the > > > instruction in the <DIR>java/README.txt to build the library, after that, > > > install your *.jar file according to the JAVA standard to use it. > > > > Hope this would help, > > > Steven > > > > On Tue, Apr 6, 2010 at 2:19 AM, Bo Zhang <[email protected]> wrote: > > > > Hi, > > > > > I'm new to both protocol buffer and to linux system, so excuse me for > > > > simple questions. :) > > > > > I try to "make" in the example directory. I got the following errors: > > > > > ...../protobuf-2.3.0/examples$ make > > > > pkg-config --cflags protobuf # fails if protobuf is not installed > > > > -pthread -I/usr/local/include > > > > c++ add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config -- > > > > cflags --libs protobuf` > > > > In file included from add_person.cc:6: > > > > addressbook.pb.h:9:42: error: google/protobuf/stubs/common.h: No such > > > > file or directory > > > > addressbook.pb.h:12:2: error: #error This file was generated by a > > > > newer version of protoc which is > > > > addressbook.pb.h:13:2: error: #error incompatible with your Protocol > > > > Buffer headers. Please update > > > > addressbook.pb.h:14:2: error: #error your headers. > > > > addressbook.pb.h:22:52: error: google/protobuf/ > > > > generated_message_util.h: No such file or directory > > > > ......(many more) > > > > > My questions are: > > > > 1. Why it tells me that protobuf is not installed? > > > > > 2. It keeps failing in finding google/protobuf/.... files. Why does > > > > this happen? > > > > > Thanks a lot > > > > > Zhang Bo > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups > > > > "Protocol Buffers" group. > > > > To post to this group, send email to [email protected]. > > > > To unsubscribe from this group, send email to > > > > [email protected]<protobuf%[email protected] > > > > om> > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/protobuf?hl=en. -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.
