I am porting some Linux code containing libev to windows, and have run into a 
mysterious compilation issue.

The problem is manifested by a syntax error (repeated hundreds of times) in 
ev_vars.h:

#define VARx(type,name) VAR(name, type name)

VARx(ev_tstamp, now_floor)  // <<<<<< THIS CHOKES: "Error: expected a ')' "


VAR is defined in ev.c thusly:

struct ev_loop
  {
    ev_tstamp ev_rt_now;
    #define ev_rt_now ((loop)->ev_rt_now)
    #define VAR(name,decl) decl;
      #include "ev_vars.h"
    #undef VAR
  };

The problem seems to be that VAR is of the form SYMBOL(arg1, arg2 arg1). That 
space between the parameters (arg2 arg1) confuses MSVC.

It looks like another Microsoft / g++ compiler snag, but I would expect the 
library creators to have caught it by now, so something else must be wrong.
Working around this is certainly possible, but others who compile on Windows 
must have seen it, and I want to know if I have committed a more fundamental 
and grievous error in my handling of libev.

Is this error familiar to anyone?

Thanks

Wabbit

________________________________
The information in this email, and any attachments, may contain confidential 
information and is intended solely for the attention and use of the named 
addressee(s). It must not be disclosed to any person(s) without authorization. 
If you are not the intended recipient, or a person responsible for delivering 
it to the intended recipient, you are not authorized to, and must not, 
disclose, copy, distribute, or retain this message or any part of it. If you 
have received this communication in error, please notify me immediately.

_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/mailman/listinfo/libev

Reply via email to