[rrd-developers] Compile rrdtool-1.4.8 in Visual Studio 2013

Tobias Oetiker tobi at oetiker.ch
Sat May 10 15:08:50 CEST 2014


Hi Peter,

would you like to create a patch ? I bet the other windows users
would be happy!

https://www.github.com/oetiker/rrdtool-1.x

cheers
tobi



Today Peter wrote:

> Hi,
>
> I compiled successfully rrdtool-1.4.8 with Visual Studio 2013 after solving
> the following 3 issues. At first pay attention to WIN32-BUILD-TIPS.txt and
> load / copy  all libraries.
> There are 3 issues left:
> 1. ==============
> use a folder without spaces!
> Otherwise later come an post build event error:
>
> Error     20     error MSB3073: The command "copy
> c:\Users\Peter\Documents\Visual Studio
> 2013\rrdtool-1.4.8\win32\\..\contrib\bin\freetype6.dll
> c:\Users\Peter\Documents\Visual Studio 2013\rrdtool-1.4.8\win32\Debug\\ ...
>
> 2. ====================
> Error     2     error C2556: 'int round(double)' : overloaded function
> differs only by return type from 'double round(double)'
>
> Problem:
> in math.h is defined
> _CRTIMP double __cdecl round(_In_ double _X);
>
>
> Solution:
> comment out:
> //__inline int round(double a ){int x = (a + 0.5); return x;}
>
> possible slower as  inline, but in c++ is not allowed overloaded function
> differs only by return.. Is there a faster solution?
>
> 3. =======================
> Error     14     error C1189: #error :  "Don't know how to deal with TIME_T
> other than 4 or 8 bytes"     c:\Users\Peter\Documents\Visual Studio
> 2013\rrdtool-1.4.8\src\rrd_restore.c     235     1     rrdlib
>
> solution from answer
> http://stackoverflow.com/questions/16962257/failing-to-compile-rrd
> in rrd_restore.c
> replace
>         #if SIZEOF_TIME_T == 4
>                      temp = strtol(( char *)text,NULL, 0);
>         #elif SIZEOF_TIME_T == 8
>                      temp = strtoll(( char *)text,NULL, 0);
>         #else
>         #error "Don't know how to deal with TIME_T other than 4 or 8 bytes"
>         #endif
> by
> #ifndef WIN32
>         #if SIZEOF_TIME_T == 4
>                      temp = strtol(( char *)text,NULL, 0);
>         #elif SIZEOF_TIME_T == 8
>                      temp = strtoll(( char *)text,NULL, 0);
>         #else
>         #error "Don't know how to deal with TIME_T other than 4 or 8 bytes"
>         #endif
> #else
>                      temp = strtoll(( char *)text, NULL, 0);
> #endif
>
> in  rrd_create.c:
> replace
> #include "../rrd_config.h"
> by
>
> #ifndef WIN32
> #include "../rrd_config.h"
> #endif
>
> After this changes I can compile it without errors and 110 warnigs.
>
> Peter
>
>
>
>
>
> --
> View this message in context: http://rrd-mailinglists.937164.n2.nabble.com/Compile-rrdtool-1-4-8-in-Visual-Studio-2013-tp7582052.html
> Sent from the RRDtool Developers Mailinglist mailing list archive at Nabble.com.
>
> _______________________________________________
> rrd-developers mailing list
> rrd-developers at lists.oetiker.ch
> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
>
>

-- 
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
www.oetiker.ch tobi at oetiker.ch +41 62 775 9902



More information about the rrd-developers mailing list