[rrd-users] Compiling RRDTool 1.6.0 and RRDs.pm for Windows

Colin Franco colin at digitalphoenix.co.zw
Mon Jun 13 08:51:42 CEST 2016

Good morning,


I'm trying to compile RRDTool 1.6.0 and RRDs.pm for Windows against
currently available community editions of 32 bit ActiveState Perl such as
5.20 and 5.22. Being a novice at this I had a slow start while installing
the necessary SDK and Visual Studio. I believe I am on the correct path but
I'm finding more challenges than answers right now. I wonder if anyone who
has succeeded at this or knows perl more intimately can shed any light on
what I am doing wrong:


Following the instructions in /win32 when I get to step 5 I execute "nmake
-f win32\Makefile.msc" but receive the error "don't know how to make
'./win32/librrd-4.def'". I haven't even an inkling where to start
troubleshooting this.


Assuming that the RRDs.pm is created by making the files in
bindings/perl-shared/ I've attempted this as well. Starting with changes to
the paths in makefile.pl I then execute 

perl Makefile.PL MAKE=nmake

This generates some "mostly harmless" warnings such for 21 libraries such as

Warning (mostly harmless): No library found for -lmoldname

Warning (mostly harmless): No library found for -lkernel32

Warning (mostly harmless): No library found for -luser32

Warning (mostly harmless): No library found for -lgdi32

Since I can find nothing helpful to me about where I can get these libraries
I'm assuming the "mostly harmless" message is true and try to nmake.


(Incidentally, the README in the perl-shared folder has the 4th prerequisite
as "- Make the project rrdlib.vcproj in Release mode to create rrdlib.lib"
but I cannot find this vcproj file nor do I think this would affect the next


This leads to the following error:

         -c  -I../../src -I../../win32 "-Ierl_core_dir" -I"c_dir/include"
-I"dk_dir/Include"  -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS
-fwrapv -fno-strict-aliasing -mms-bitfields -O2 -MD    -DVERSION=\"1.5001\"
-DXS_VERSION=\"1.5001\"  "-IC:\Perl\lib\CORE"  -DPERLPATCHLEVEL=20

'-c' is not recognized as an internal or external command,

operable program or batch file.

NMAKE : fatal error U1077: '-c' : return code '0x1'



There is no command preceding the switches! Checking the makefile it seems
the command is supposed to be in the CC constant which is null:


# --- MakeMaker const_config section:


# These definitions are from config.sh (via C:/Perl/lib/Config.pm).

# They may have been overridden via Makefile.PL or on the command line.

AR = lib

CC = 



If I manually edit the makefile and indicate cc = perl.exe  then I receive
messages about invalid switches, for example -O2 is not a valid perl command
line switch, nor -fwrapv or any of those beginning with -D.


Clearly, something is going horribly wrong or I've completely misunderstood
what I am supposed to do. 


Looking forward to your input.


Best wishes,





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.oetiker.ch/pipermail/rrd-users/attachments/20160613/fdebc55f/attachment.html>

More information about the rrd-users mailing list