Thanks a lot for both of you. It works fine now.
Zhang Bo On Apr 7, 10:16 am, Kenton Varda <ken...@google.com> wrote: > protoc generates a .pb.cc file. You need to compile that too. > > > > On Tue, Apr 6, 2010 at 6:44 PM, Bo Zhang <zhan...@google.com> wrote: > > 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._ZN6google8protobuf8internal18GenericTypeHandlerIN8tutorial6PersonEE > > 3NewEv[google::protobuf::internal::GenericTypeHandler<tutorial::Person>::Ne > > w()] > > +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_P > > honeNumber::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_PhoneNumbe > > r>::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[tut > > orial::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 <zhan...@google.com> 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 <zhan...@google.com> 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 protobuf@googlegroups.com > > > > ========================================== > > > > > 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 <stevenong2...@gmail.com> 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 <zhan...@google.com> 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 proto...@googlegroups.com. > > > > > > To unsubscribe from this group, send email to > > > > > > protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.c > > > > > > om> > > <protobuf%2bunsubscr...@googlegroups.c 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 proto...@googlegroups.com. > > To unsubscribe from this group, send email to > > protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.c > > 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 proto...@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.