FWIW, it's just the examples that are looking in the default location.  The
library itself should work fine wherever you install it.

On Wed, Feb 3, 2010 at 9:54 PM, hap 497 <hap...@gmail.com> wrote:

> Thank you Kenton.
>
> I am able to resolve my problem.
> I basically did a 'make clean', but install it in the default
> directory (/usr/local/).
>
> Things work afterward.
>
> Thank you again.
>
>
> On Wed, Feb 3, 2010 at 11:32 AM, Kenton Varda <ken...@google.com> wrote:
> > The .pb.h file compares the version of protoc that generated it against
> > GOOGLE_PROTOBUF_MIN_PROTOC_VERSION, which is #defined in
> > google/protobuf/stubs/common.h.  We have never released a version in
> which
> > this value was more than 2003000, which corresponds to protoc 2.3.0, so I
> > can't imagine why you're getting the error.  Please investigate yourself
> and
> > let us know if you figure it out.
> > BTW, there's a good chance that "pkg-config --cflags --libs protobuf" is
> not
> > producing the correct flags since you did not install to the standard
> > location (pkg-config probably does not know to look in /meda/EXTDIV for
> > package definitions).  However, even so, I don't understand why you'd get
> > the error you're getting.
> >
> > On Wed, Feb 3, 2010 at 11:12 AM, hap 497 <hap...@gmail.com> wrote:
> >>
> >> Thanks. No, I have not installed any other version of protoc.
> >>
> >> But I have installed not in my '/usr/etc' directory, I instead in
> >> /meda/EXTDIV/bin', I am not sure if that is a problem. And I am using
> >> ubuntu 9.10 which has gcc 4.4.
> >>
> >>
> >> On Wed, Feb 3, 2010 at 10:35 AM, Kenton Varda <ken...@google.com>
> wrote:
> >> > Did you previously compile the examples with an older protoc?  You
> need
> >> > to
> >> > "make clean" before trying to compile with a newer protoc.
> >> >
> >> > On Wed, Feb 3, 2010 at 9:18 AM, hap 497 <hap...@gmail.com> wrote:
> >> >>
> >> >> Kenton,
> >> >>
> >> >> Thank you.
> >> >>
> >> >> It prints 'libprotoc 2.3.0'. And I have setup my LD_LIBRARY_PATH,
> >> >> PATH, PKG_CONFIG_PATH on my ubuntu env accordingly.
> >> >>
> >> >> $ protoc --version
> >> >> libprotoc 2.3.0
> >> >> /media/EXTDIV/src/protobuf-2.3.0/examples:1014:14$ make cpp
> >> >> pkg-config --cflags protobuf  # fails if protobuf is not installed
> >> >> -pthread -I/media/EXTDIV/bin/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:16:2: error: #error This file was generated by an
> >> >> older version of protoc which is
> >> >> addressbook.pb.h:17:2: error: #error incompatible with your Protocol
> >> >> Buffer headers. Please
> >> >> addressbook.pb.h:18:2: error: #error regenerate this file with a
> newer
> >> >> version of protoc.
> >> >> add_person.cc: In function ‘int main(int, char**)’:
> >> >> add_person.cc:66: error: cannot declare variable ‘address_book’ to be
> >> >> of abstract type ‘tutorial::AddressBook’
> >> >> addressbook.pb.h:246: note:   because the following virtual functions
> >> >> are pure within ‘tutorial::AddressBook’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/message.h:331: note:
> >> >>       virtual google::protobuf::Metadata
> >> >> google::protobuf::Message::GetMetadata() const
> >> >> In file included from
> >> >> /media/EXTDIV/bin/include/google/protobuf/unknown_field_set.h:43,
> >> >>                from
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:44,
> >> >>                from addressbook.pb.h:21,
> >> >>                from add_person.cc:6:
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h: In static
> >> >> member function ‘static GenericType*
> >> >> google::protobuf::internal::GenericTypeHandler<GenericType>::New()
> >> >> [with GenericType = tutorial::Person_PhoneNumber]’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:655:
> >> >> instantiated from ‘typename TypeHandler::Type*
> >> >> google::protobuf::internal::RepeatedPtrFieldBase::Add() [with
> >> >> TypeHandler =
> >> >>
> >> >>
> google::protobuf::RepeatedPtrField<tutorial::Person_PhoneNumber>::TypeHandler]’
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:829:
> >> >> instantiated from ‘Element*
> >> >> google::protobuf::RepeatedPtrField<Element>::Add() [with Element =
> >> >> tutorial::Person_PhoneNumber]’
> >> >> addressbook.pb.h:491:   instantiated from here
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:271:
> error:
> >> >> cannot allocate an object of abstract type
> >> >> ‘tutorial::Person_PhoneNumber’
> >> >> addressbook.pb.h:48: note:   because the following virtual functions
> >> >> are pure within ‘tutorial::Person_PhoneNumber’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/message.h:331: note:
> >> >>       virtual google::protobuf::Metadata
> >> >> google::protobuf::Message::GetMetadata() const
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h: In static
> >> >> member function ‘static GenericType*
> >> >> google::protobuf::internal::GenericTypeHandler<GenericType>::New()
> >> >> [with GenericType = tutorial::Person]’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:655:
> >> >> instantiated from ‘typename TypeHandler::Type*
> >> >> google::protobuf::internal::RepeatedPtrFieldBase::Add() [with
> >> >> TypeHandler =
> >> >> google::protobuf::RepeatedPtrField<tutorial::Person>::TypeHandler]’
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:829:
> >> >> instantiated from ‘Element*
> >> >> google::protobuf::RepeatedPtrField<Element>::Add() [with Element =
> >> >> tutorial::Person]’
> >> >> addressbook.pb.h:520:   instantiated from here
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:271:
> error:
> >> >> cannot allocate an object of abstract type ‘tutorial::Person’
> >> >> addressbook.pb.h:128: note:   because the following virtual functions
> >> >> are pure within ‘tutorial::Person’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/message.h:331: note:
> >> >>       virtual google::protobuf::Metadata
> >> >> google::protobuf::Message::GetMetadata() const
> >> >> In file included from addressbook.pb.cc:3:
> >> >> addressbook.pb.h:16:2: error: #error This file was generated by an
> >> >> older version of protoc which is
> >> >> addressbook.pb.h:17:2: error: #error incompatible with your Protocol
> >> >> Buffer headers. Please
> >> >> addressbook.pb.h:18:2: error: #error regenerate this file with a
> newer
> >> >> version of protoc.
> >> >> addressbook.pb.cc:7:45: error: google/protobuf/wire_format_inl.h: No
> >> >> such file or directory
> >> >> addressbook.pb.cc: In function ‘void
> >> >>
> >> >>
> >> >>
> tutorial::protobuf_BuildDesc_addressbook_2eproto_AssignGlobalDescriptors(const
> >> >> google::protobuf::FileDescriptor*)’:
> >> >> addressbook.pb.cc:29: error: cannot allocate an object of abstract
> >> >> type ‘tutorial::Person’
> >> >> addressbook.pb.h:128: note:   because the following virtual functions
> >> >> are pure within ‘tutorial::Person’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/message.h:331: note:
> >> >>       virtual google::protobuf::Metadata
> >> >> google::protobuf::Message::GetMetadata() const
> >> >> addressbook.pb.cc:45: error: no matching function for call to
> >> >>
> >> >>
> >> >>
> ‘google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::Descriptor*&, tutorial::Person*&, const int [4],
> >> >> int, int, int, const google::protobuf::DescriptorPool*, unsigned
> int)’
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:344:
> >> >> note: candidates are:
> >> >>
> >> >>
> >> >>
> google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::internal::GeneratedMessageReflection&)
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:122:
> >> >> note:
> >> >>
> >> >>
> >> >>
> google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::Descriptor*, const google::protobuf::Message*,
> const
> >> >> int*, int, int, int, const google::protobuf::DescriptorPool*,
> >> >> google::protobuf::MessageFactory*, int)
> >> >> addressbook.pb.cc:47: error: cannot allocate an object of abstract
> >> >> type ‘tutorial::Person_PhoneNumber’
> >> >> addressbook.pb.h:48: note:   because the following virtual functions
> >> >> are pure within ‘tutorial::Person_PhoneNumber’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/message.h:331: note:
> >> >>       virtual google::protobuf::Metadata
> >> >> google::protobuf::Message::GetMetadata() const
> >> >> addressbook.pb.cc:61: error: no matching function for call to
> >> >>
> >> >>
> >> >>
> ‘google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::Descriptor*&, tutorial::Person_PhoneNumber*&, const
> >> >> int [2], int, int, int, const google::protobuf::DescriptorPool*,
> >> >> unsigned int)’
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:344:
> >> >> note: candidates are:
> >> >>
> >> >>
> >> >>
> google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::internal::GeneratedMessageReflection&)
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:122:
> >> >> note:
> >> >>
> >> >>
> >> >>
> google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::Descriptor*, const google::protobuf::Message*,
> const
> >> >> int*, int, int, int, const google::protobuf::DescriptorPool*,
> >> >> google::protobuf::MessageFactory*, int)
> >> >> addressbook.pb.cc:68: error: cannot allocate an object of abstract
> >> >> type ‘tutorial::AddressBook’
> >> >> addressbook.pb.h:246: note:   because the following virtual functions
> >> >> are pure within ‘tutorial::AddressBook’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/message.h:331: note:
> >> >>       virtual google::protobuf::Metadata
> >> >> google::protobuf::Message::GetMetadata() const
> >> >> addressbook.pb.cc:81: error: no matching function for call to
> >> >>
> >> >>
> >> >>
> ‘google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::Descriptor*&, tutorial::AddressBook*&, const int
> >> >> [1], int, int, int, const google::protobuf::DescriptorPool*, unsigned
> >> >> int)’
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:344:
> >> >> note: candidates are:
> >> >>
> >> >>
> >> >>
> google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::internal::GeneratedMessageReflection&)
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:122:
> >> >> note:
> >> >>
> >> >>
> >> >>
> google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(const
> >> >> google::protobuf::Descriptor*, const google::protobuf::Message*,
> const
> >> >> int*, int, int, int, const google::protobuf::DescriptorPool*,
> >> >> google::protobuf::MessageFactory*, int)
> >> >> addressbook.pb.cc: In function ‘void
> >> >> tutorial::protobuf_BuildDesc_addressbook_2eproto()’:
> >> >> addressbook.pb.cc:97: error: ‘class
> google::protobuf::DescriptorPool’
> >> >> has no member named ‘InternalBuildGeneratedFile’
> >> >> addressbook.pb.cc: In member function ‘virtual
> >> >> tutorial::Person_PhoneNumber* tutorial::Person_PhoneNumber::New()
> >> >> const’:
> >> >> addressbook.pb.cc:184: error: cannot allocate an object of abstract
> >> >> type ‘tutorial::Person_PhoneNumber’
> >> >> addressbook.pb.h:48: note:   since type
> ‘tutorial::Person_PhoneNumber’
> >> >> has pure virtual functions
> >> >> addressbook.pb.cc: In member function ‘virtual tutorial::Person*
> >> >> tutorial::Person::New() const’:
> >> >> addressbook.pb.cc:247: error: cannot allocate an object of abstract
> >> >> type ‘tutorial::Person’
> >> >> addressbook.pb.h:128: note:   since type ‘tutorial::Person’ has pure
> >> >> virtual functions
> >> >> addressbook.pb.cc: In member function ‘virtual
> tutorial::AddressBook*
> >> >> tutorial::AddressBook::New() const’:
> >> >> addressbook.pb.cc:295: error: cannot allocate an object of abstract
> >> >> type ‘tutorial::AddressBook’
> >> >> addressbook.pb.h:246: note:   since type ‘tutorial::AddressBook’ has
> >> >> pure virtual functions
> >> >> In file included from
> >> >> /media/EXTDIV/bin/include/google/protobuf/unknown_field_set.h:43,
> >> >>                from
> >> >>
> >> >>
> >> >>
> /media/EXTDIV/bin/include/google/protobuf/generated_message_reflection.h:44,
> >> >>                from addressbook.pb.h:21,
> >> >>                from addressbook.pb.cc:3:
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h: In static
> >> >> member function ‘static GenericType*
> >> >> google::protobuf::internal::GenericTypeHandler<GenericType>::New()
> >> >> [with GenericType = tutorial::Person_PhoneNumber]’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:655:
> >> >> instantiated from ‘typename TypeHandler::Type*
> >> >> google::protobuf::internal::RepeatedPtrFieldBase::Add() [with
> >> >> TypeHandler =
> >> >>
> >> >>
> google::protobuf::RepeatedPtrField<tutorial::Person_PhoneNumber>::TypeHandler]’
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:829:
> >> >> instantiated from ‘Element*
> >> >> google::protobuf::RepeatedPtrField<Element>::Add() [with Element =
> >> >> tutorial::Person_PhoneNumber]’
> >> >> addressbook.pb.h:491:   instantiated from here
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:271:
> error:
> >> >> cannot allocate an object of abstract type
> >> >> ‘tutorial::Person_PhoneNumber’
> >> >> addressbook.pb.h:48: note:   since type
> ‘tutorial::Person_PhoneNumber’
> >> >> has pure virtual functions
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h: In static
> >> >> member function ‘static GenericType*
> >> >> google::protobuf::internal::GenericTypeHandler<GenericType>::New()
> >> >> [with GenericType = tutorial::Person]’:
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:655:
> >> >> instantiated from ‘typename TypeHandler::Type*
> >> >> google::protobuf::internal::RepeatedPtrFieldBase::Add() [with
> >> >> TypeHandler =
> >> >> google::protobuf::RepeatedPtrField<tutorial::Person>::TypeHandler]’
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:829:
> >> >> instantiated from ‘Element*
> >> >> google::protobuf::RepeatedPtrField<Element>::Add() [with Element =
> >> >> tutorial::Person]’
> >> >> addressbook.pb.h:520:   instantiated from here
> >> >> /media/EXTDIV/bin/include/google/protobuf/repeated_field.h:271:
> error:
> >> >> cannot allocate an object of abstract type ‘tutorial::Person’
> >> >> addressbook.pb.h:128: note:   since type ‘tutorial::Person’ has pure
> >> >> virtual functions
> >> >> make: *** [add_person_cpp] Error 1
> >> >> /media/EXTDIV/src/protobuf-2.3.0/examples:1015:15$
> >> >>
> >> >> On Tue, Feb 2, 2010 at 1:38 PM, Kenton Varda <ken...@google.com>
> wrote:
> >> >> > What does "protoc --version" print?
> >> >> >
> >> >> > On Tue, Feb 2, 2010 at 10:31 AM, hap 497 <hap...@gmail.com> wrote:
> >> >> >>
> >> >> >> Hi,
> >> >> >>
> >> >> >> I am trying to compile protobuf cpp example.
> >> >> >> $ cd /media/EXTDIV/src/protobuf-2.3.0/examples
> >> >> >> $ make cpp
> >> >> >>
> >> >> >> But I am getting these errors:
> >> >> >> 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:16:2: error: #error This file was generated by an
> >> >> >> older version of protoc which is
> >> >> >> addressbook.pb.h:17:2: error: #error incompatible with your
> Protocol
> >> >> >> Buffer headers. Please
> >> >> >> addressbook.pb.h:18:2: error: #error regenerate this file with a
> >> >> >> newer
> >> >> >> version of protoc.
> >> >> >> add_person.cc: In function ‘int main(int, char**)’:
> >> >> >> add_person.cc:66: error: cannot declare variable ‘address_book’ to
> >> >> >> be
> >> >> >> of abstract type ‘tutorial::AddressBook’
> >> >> >> addressbook.pb.h:246: note:   because the following virtual
> >> >> >> functions
> >> >> >> are pure within ‘tutorial::AddressBook’:
> >> >> >>
> >> >> >> I downnload the source tar ball 2.3.0 on Ubuntu. Is that out of
> >> >> >> date?
> >> >> >>
> >> >> >> Thank you.
> >> >> >>
> >> >> >> --
> >> >> >> 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.com>
> .
> >> >> >> 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.com>
> .
> >> >> > 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.com>
> .
> > 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.

Reply via email to