From: Beau E. C. <be...@ha...> - 2005-12-02 01:25:34
|
Hi Maarten - At 2005-12-01, 12:47:11 you wrote: >Hello all, > >Are there any developers or users out there using Microsoft Visual C 6 to compile SDCC from the >sources? I'm asking because I'm considering to switch to the new and free Visual C++ 2005 >Express Edition. > >All comments are welcome, >Maarten > > I'm using VC6, VC7 ( 2003 toolkit ) and VC8 ( 2005 Express ). I am not using the IDE's, but converting the VC6 .dsw/.dsp files to Makefiles and doing nmake. If you switch, I would have to revamp those conversion scripts - no sweat - I just would like a head's up. By the way, there are a few things that I stumbled upon when compiling with VC8 that may be of help: 1) Be sure to disable warning #4996 ( /wd4996 ) otherwise you get a lot of warnings. It seems that the gurus at M$ are going to rename a bunch of functions in their c library again, and these warnings are the first step. 2) src/support/librarian/sdcclib.c won't compile without a tweak. The headers in that source are as such: #include <stdlib.h> #include <stdio.h> #include <string.h> #define _POSIX_ #include <limits.h> #if !defined(__BORLANDC__) && !defined(_MSC_VER) #include <unistd.h> #endif The problem is that stdlib.h includes limits.h and _POSIX_ is not defined at that time. When limits.h is included it nops because of duplicate include protection. That means the MAX_... _POSIX_ constants used in sdcclib.c is not defined and hence the error. I solved it by defining _POSIX_ at compile time ( /D_POSIX_ ) and disabling the ensuing warning ( /wd4005 ). Moving the #define _POSIX_ up should work too, but I was afraid of side effects. Aloha => Beau; be...@ha... 2005-12-01 |