0

这个问题遵循如何在 Strawberry perl 上安装 RRDTool::OO 我认为为了清楚起见,最好创建一个新问题。

恢复:

想在 Windows 上安装 RRDTool::OO perl 库。为此,需要库 RRDTool。它是一个 C 库,必须手动编译。首先要编译的是 rrd.sln 项目。使用 Visual C++ 可以顺利运行第二件事是编译 RRDs.XS。这对 Strawberry 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 上编译过这个模块吗?

4

1 回答 1

0

在 windows server 2008 64 位版本上编译 RRDs.XS 似乎是不可能的 - 或者由于创建和应用到库的几个 hack 而变得复杂。这里有几点:

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

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

于 2012-01-31T14:48:55.047 回答