At long last I have managed to get libical 0.46 built on windoze using VC8. I had to hack a couple of libical source files. I reckon these will need to go into the official source at some point.

First, I changed vsnprintf.h after the #include <stdarg.h> statement (line 8). I added

#if !defined(_MSC_VER)

and added the closing #endif after the snprintf decl at the end.

This is necessary because VC8 does not define the __STDC__ macro as it should. One cannot define it in the CMake because this makes other things fail. Other VC headers expect it to be not defined basically and it causes problems for some of the macros in fcntl.h.

It may be that at some version of Visual Studio this macro gets defined correctly. I don't know. VC8 is all I have so I cannot check this easily. A full fix might involve checking the value of _MSC_VER.

Then I had to edit ical.def. I removed all the occurences of simple_str_to_float,, a routine that seems to no longer exist. This made libical build. But the test program regression failed to link due to missing symbol _icaltimezone_set_tzid_prefix. I added icaltimezone_set_tzid_prefix to the end of ical.def and rebuilt and this made everything build ok.

I am puzzled by the reports of everyone else being able to build libical on windoze ok, given the problems I have found above. Maybe these problems are peculiar to VC8. Hmmm.


Andrew Marlow
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is prohibited.

Please refer to  for additional disclosures.