The author of protobuf-c might not read this list. You might want to e-mail him directly.
But I would suggest looking at the contents of tut.pb-c.c to see whether it actually defines a_message__pack. Maybe the problem will be obvious. On Tue, Dec 28, 2010 at 3:08 PM, Suhail Doshi <digitalwarf...@gmail.com>wrote: > I am using the protobuf-c extension out there. > > Getting the following errors: > > gcc tut.c tut.pb-c.c -o tut -lprotobuf-c -lprotobuf -lpthread > > /tmp/ccBHwTBl.o: In function `main': > tut.c:(.text+0xab): undefined reference to > `a_message__get_packed_size' > tut.c:(.text+0xcc): undefined reference to `a_message__pack' > collect2: ld returned 1 exit status > > tut.c > ---------------- > #include "tut.pb- > c.h" > #include > <stdio.h> > #include > <stdlib.h> > > int main(int argc, char **argv) > { > AMessage msg = > AMESSAGE__INIT; > void > *buf; > > unsigned > len; > > if (argc < 2 || argc > 3) > { > fprintf(stderr, "usage: pack a [b] > \n"); > return > 1; > } > > msg.a = > atoi(argv[1]); > if (argc == 3) > { > msg.has_b = > 1; > msg.b = > atoi(argv[2]); > } > > len = > a_message__get_packed_size(&msg); > buf = > malloc(len); > a_message__pack(&msg, > buf); > fwrite(buf, len, 1, > stdout); > > return > 0; > } > > tut-pb-c.h > ------------------------------------------ > > /* Generated by the protocol buffer compiler. DO NOT EDIT! */ > > #ifndef PROTOBUF_C_tut_2eproto__INCLUDED > #define PROTOBUF_C_tut_2eproto__INCLUDED > > #include <google/protobuf-c/protobuf-c.h> > > PROTOBUF_C_BEGIN_DECLS > > > typedef struct _AMessage AMessage; > > > /* --- enums --- */ > > > /* --- messages --- */ > > struct _AMessage > { > ProtobufCMessage base; > int32_t a; > protobuf_c_boolean has_b; > int32_t b; > }; > #define AMESSAGE__INIT \ > { PROTOBUF_C_MESSAGE_INIT (&amessage__descriptor) \ > , 0, 0,0 } > > > /* AMessage methods */ > void amessage__init > (AMessage *message); > size_t amessage__get_packed_size > (const AMessage *message); > size_t amessage__pack > (const AMessage *message, > uint8_t *out); > size_t amessage__pack_to_buffer > (const AMessage *message, > ProtobufCBuffer *buffer); > AMessage * > amessage__unpack > (ProtobufCAllocator *allocator, > size_t len, > const uint8_t *data); > void amessage__free_unpacked > (AMessage *message, > ProtobufCAllocator *allocator); > /* --- per-message closures --- */ > > typedef void (*AMessage_Closure) > (const AMessage *message, > void *closure_data); > > /* --- services --- */ > > > /* --- descriptors --- */ > > extern const ProtobufCMessageDescriptor amessage__descriptor; > > PROTOBUF_C_END_DECLS > > > #endif /* PROTOBUF_tut_2eproto__INCLUDED */ > > -- > 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.