[protobuf] Re: protoc generated .h file has errors in VS2008

2009-12-10 Thread bayWeiss
Ok, some more info.. thanks to your help

So I renamed Arc to ArcShape in the protofile, for example, and it all
works fine.
Funny thing is, if I rename Square to Polyline, I get the same
errors.

If I rename Polyline to PolyLine.. all is ok.

Using Ellipse throws errors also...

So, I guess I cant pin down exactly where the conflict is, but there
must be some geometry objects included with the c++ console project
type i created...

thanks!

On Dec 10, 4:36 pm, Kenton Varda ken...@google.com wrote:
 The errors suggest to me that somewhere you have #defined Arc as a macro.
  Is this possible?



 On Thu, Dec 10, 2009 at 9:21 AM, bayWeiss bzwr...@yahoo.com wrote:
  I cant post the whole generated .h file, but below is a snippet where
  for some reason the compiler cant identify the Arc class. The
  declaration for Arc is definitely above the below c++ snippet, but it
  acts as if it cant recognize it.

  ---the errors are from VS2008--

  error C4430: missing type specifier - int assumed. Note: C++ does not
  support default-int     c:\googleprototest\googleprototestcppserver
  \person.pb.h    669     GoogleProtoTestCPPServer
  error C2143: syntax error : missing ';' before ''      c:\googleprototest
  \googleprototestcppserver\person.pb.h   669
  error C2838: 'Arc' : illegal qualified name in member declaration       c:
  \googleprototest\googleprototestcppserver\person.pb.h   669
  error C4430: missing type specifier - int assumed. Note: C++ does not
  support default-int     c:\googleprototest\googleprototestcppserver
  \person.pb.h    669

  -here is the generated header snippet from 2.2.0a protoc, within
  the Entity class declaration

   // optional .Square square = 3;
   inline bool has_square() const;
   inline void clear_square();
   static const int kSquareFieldNumber = 3;
   inline const ::Square square() const;
   inline ::Square* mutable_square();

   // optional .Arc arc = 4;
   inline bool has_arc() const;
   inline void clear_arc();
   static const int kArcFieldNumber = 4;
   inline const ::Arc arc() const;                         // - the
  problem is here, line 669
   inline ::Arc* mutable_arc();                               // and
  here as well

  ---here is the .proto file-

  message Point
  {
         required double X = 1;
         required double Y = 2;
  }

  message Circle
  {
         required Point point1 = 1;
         required Point point2 = 2;
         required Point point3 = 3;
         required Point point4 = 4;
  }

  message Square
  {
         repeated Point pointList = 1;
  }

  message Arc
  {
         required Point center = 1;
         required double startAngle = 2;
         required double endAngle = 3;
  }

  message Parameter
  {
         required double somethingHere = 1;
  }

  message Entity
  {
         enum Type { CIRCLE = 1; SQUARE = 2; ARC = 3; }

         // Identifies which entity it is.
         required Type type = 1;

         optional Circle circle = 2;
         optional Square square = 3;
         optional Arc arc = 4;
  }

  message Job
  {
         repeated Entity entity = 1;
  }

  message Initialize
  {
  }

  message Start
  {
  }

  message MainMessage
  {
         enum Type { NEW_JOB = 1; INITIALIZE = 2; START = 3;}

         // Identifies which field is filled in.
         required Type type = 1;

         // One of the following will be filled in.
         optional Job job = 2;
         optional Initialize initialize = 3;
         optional Start start = 4;
  }

  --

  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.comprotobuf%2bunsubscr...@googlegroups.c­om
  .
  For more options, visit this group at
 http://groups.google.com/group/protobuf?hl=en.- Hide quoted text -

 - Show quoted text -

--

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.




Re: [protobuf] Re: protoc generated .h file has errors in VS2008

2009-12-10 Thread Daniel Wright
Maybe ask the compiler for the pre-processed output (sorry, I don't know the
VS2008 flag), and search through that for the first appearance of those
identifiers.  That'll tell you what header they come from.

Adding a package should fix this kind of problem by putting all of the
messages in a c++ namespace.

On Thu, Dec 10, 2009 at 3:36 PM, bayWeiss bzwr...@yahoo.com wrote:

 Ok, some more info.. thanks to your help

 So I renamed Arc to ArcShape in the protofile, for example, and it all
 works fine.
 Funny thing is, if I rename Square to Polyline, I get the same
 errors.

 If I rename Polyline to PolyLine.. all is ok.

 Using Ellipse throws errors also...

 So, I guess I cant pin down exactly where the conflict is, but there
 must be some geometry objects included with the c++ console project
 type i created...

 thanks!

 On Dec 10, 4:36 pm, Kenton Varda ken...@google.com wrote:
  The errors suggest to me that somewhere you have #defined Arc as a macro.
   Is this possible?
 
 
 
  On Thu, Dec 10, 2009 at 9:21 AM, bayWeiss bzwr...@yahoo.com wrote:
   I cant post the whole generated .h file, but below is a snippet where
   for some reason the compiler cant identify the Arc class. The
   declaration for Arc is definitely above the below c++ snippet, but it
   acts as if it cant recognize it.
 
   ---the errors are from VS2008--
 
   error C4430: missing type specifier - int assumed. Note: C++ does not
   support default-int c:\googleprototest\googleprototestcppserver
   \person.pb.h669 GoogleProtoTestCPPServer
   error C2143: syntax error : missing ';' before ''
  c:\googleprototest
   \googleprototestcppserver\person.pb.h   669
   error C2838: 'Arc' : illegal qualified name in member declaration
 c:
   \googleprototest\googleprototestcppserver\person.pb.h   669
   error C4430: missing type specifier - int assumed. Note: C++ does not
   support default-int c:\googleprototest\googleprototestcppserver
   \person.pb.h669
 
   -here is the generated header snippet from 2.2.0a protoc, within
   the Entity class declaration
 
// optional .Square square = 3;
inline bool has_square() const;
inline void clear_square();
static const int kSquareFieldNumber = 3;
inline const ::Square square() const;
inline ::Square* mutable_square();
 
// optional .Arc arc = 4;
inline bool has_arc() const;
inline void clear_arc();
static const int kArcFieldNumber = 4;
inline const ::Arc arc() const; // - the
   problem is here, line 669
inline ::Arc* mutable_arc();   // and
   here as well
 
   ---here is the .proto file-
 
   message Point
   {
  required double X = 1;
  required double Y = 2;
   }
 
   message Circle
   {
  required Point point1 = 1;
  required Point point2 = 2;
  required Point point3 = 3;
  required Point point4 = 4;
   }
 
   message Square
   {
  repeated Point pointList = 1;
   }
 
   message Arc
   {
  required Point center = 1;
  required double startAngle = 2;
  required double endAngle = 3;
   }
 
   message Parameter
   {
  required double somethingHere = 1;
   }
 
   message Entity
   {
  enum Type { CIRCLE = 1; SQUARE = 2; ARC = 3; }
 
  // Identifies which entity it is.
  required Type type = 1;
 
  optional Circle circle = 2;
  optional Square square = 3;
  optional Arc arc = 4;
   }
 
   message Job
   {
  repeated Entity entity = 1;
   }
 
   message Initialize
   {
   }
 
   message Start
   {
   }
 
   message MainMessage
   {
  enum Type { NEW_JOB = 1; INITIALIZE = 2; START = 3;}
 
  // Identifies which field is filled in.
  required Type type = 1;
 
  // One of the following will be filled in.
  optional Job job = 2;
  optional Initialize initialize = 3;
  optional Start start = 4;
   }
 
   --
 
   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.comprotobuf%2bunsubscr...@googlegroups.com
 protobuf%2bunsubscr...@googlegroups.c­om
   .
   For more options, visit this group at
  http://groups.google.com/group/protobuf?hl=en.- Hide quoted text -
 
  - Show quoted text -

 --

 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.comprotobuf%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