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.

Reply via email to