如何在Windows / Strawberry上编译RRDTool

时间:2012-01-30 09:41:53

标签: windows perl rrd

此问题遵循How to install RRDTool::OO on Strawberry perl 为了清楚起见,我认为创建一个新问题会更好。

恢复:

有人想在Windows上安装RRDTool :: OO perl库。为此,需要库RRDTool。它是一个C lib,必须手动编译。 首先要编译的是rrd.sln项目。这可以通过visual C ++顺利运行 第二件事是编译RRDs.XS.这对草莓perl来说根本不起作用。

1)我启动了perl ntmake-build来生成windows的makefile。 2)然后启动dmake来编译模块。显示一堆编译错误。

问题来自于ntmake-build文件使用不适合Strawberry perl的静态路径。但即使在纠正它们之后,仍然会出现错误:

RRDs.o:RRDs.c :(。text + 0x971):对`rrd_clear_error'的未定义引用

RRDs.o:RRDs.c :(。text + 0x985):对`rrd_restore'的未定义引用

RRDs.o:RRDs.c :(。text + 0x9f7):对`rrd_test_error'的未定义引用

RRDs.o:RRDs.c :(。text + 0xafd):对`rrd_clear_error'的未定义引用

......................

collect2:ld返回1退出状态

dmake.exe:错误代码129,同时制作'blib \ arch \ auto \ RRDs \ RRDs.dll'

有人曾经在windows / Strawberry上编译过这个模块吗?

1 个答案:

答案 0 :(得分:0)

在Windows Server 2008 64位版本上编译RRDs.XS似乎不可能 - 或者由于几个hacks创建并应用于库而复杂化。以下是几点:

  • RRDTool没有PPM包(至少在ActiveState存储库中)。
  • 无论如何,Strawberry perl x64没有嵌入PPM工具。
  • RRDTools makefile是为AS 32位安装而编写的(主要是由于perl库的静态路径,可能我错过了其他静态路径 - 例如C库)。

这些是我可以列出的要点,避免在Strawberry Perl上干净安装RRDTool。 这意味着也不能使用前端模块RRDTool :: OO。