Closed tapir closed 8 years ago
@jdolan
@tapir Do the Objectively unit tests compile (make check
)?
Except date.exe they all pass
Date.c:43:F:date:date:0: Assertion 'date1 != ((void *)0)' failed
That's kind of expected right now. MinGW doesn't provide strptime
:
https://github.com/jdolan/Objectively/blob/master/Sources/Objectively/DateFormatter.c#L41
OH! I know what this error is. Something in Windows (I forget which header) is retarded, and does this:
typedef struct interface;
Fucking ridiculous. In Class.h
, I "fix" this:
https://github.com/jdolan/Objectively/blob/master/Sources/Objectively/Class.h#L40
My guess is that you added some more Windows #include
s -after- Object.h
and Class.h
are brought in, and that's what's causing this issue. All Windows-related #include
s must happen before you #include
Objectively.
huh! well the thing is the code does compile with mingw, it's only a problem with cygwin and I didn't really change the code. All the changes I've done are already merged to master. I'll see what I can do. Thanks
Edit: Ah btw this is error from an unchanged mvc master with autotools.
from w32api/basetyps.h
#define __STRUCT__ struct
#ifndef __OBJC__
#undef interface
#define interface __STRUCT__
#endif
Definitely very dangerous to use "interface" name. I'm not sure ordering your include files in the source level guarantees that one will not be included after while compiling. I think the best solution is to avoid using the name interface. is this cruical?
Oof. I'd really like to find a workaround, especially since Cygwin is the only environment having problems here. Clang, gcc, MinGW and Visual Studio are all fine with it.
Was fixed with 0e524d8a6902ed476006af3bfa6efe35b2594ee0
I'm reopening this issue.
I have successfully built and installed objectively on cygwin with autotools.
But when I try to build mvc I get these errors. I have no idea what these are. Looks like syntax errors but can be something else as well.
As you mentioned before, getting these errors after successfully compiling objectively is strange but it still is the fact.
Any ideas?