Menu

Compiling 0.2.6 rc 4 on MSCV6

Help
2001-12-11
2001-12-11
  • Yves Berquin

    Yves Berquin - 2001-12-11

    Here are some compile-time errors I get when trying the build the (0.2.6 rc 4) project :

    1. int64_t is undefined under Micro$oft.
    But __int64 is.
    I propose to change the declaration in config-win32.h to

    #ifndef LOG4CPP_HAVE_INT64_T
    #define LOG4CPP_HAVE_INT64_T  
    #define int64_t __int64 
    #endif

    2. There's an error in line 37 of TimeStamp.cpp

    The argument to ftime is a
       struct timeb *
    hence :
       ::ftime (& tb);
    and not
       ::ftime (* tb);

    3. In line 120 of PatternLayout.cpp, the compiler fires an error for "ambiguous operator <<"
    I guess we need to recast the t variable to a (int), but I'm not sure of that

    Sorry to bother y'all with this Micro$oft stuff
    :-))

     
    • Bastiaan Bakker

      Bastiaan Bakker - 2001-12-11

      Hi Yves,

      Thanks for your input. log4cpp is supposed to support MSVC6, so your comments aren't a 'bother' at all.

      I've adopted 1 and 2. For point 3, casting to an int will lead to cycling of the stamp within a month. This may not be a problem on Win32, but Unix daemons tend to run longer than that :-).
      According to MS itself it is a bug in the MSVC C++ library, see: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q168440
      I've included their workaround.
      Please try the fixes and let me know if they are OK. You can get the updated files from CVS, or if that is too difficult I can send you a fresh tar ball. Just ask...

      Regards,

      Bastiaan

       
    • Yves Berquin

      Yves Berquin - 2001-12-11

      Bastiaan,

      Your new version is <b>great</b>. Fixed all that.

      I put a
         #define LOG4CPP_USE_CLEANUP
      in config-win32.h

      This worked perfectly. BoundChecker doesn't blink.

      Now, I'll try to <i>use</i> your tool ...
      Have a great day

      Yves

       

Log in to post a comment.

MongoDB Logo MongoDB