0

我在使用 Visual Studio 2008 编译 rrdtool 时遇到问题。

我添加并提取了所有 zip 文件。

我打开 rrd.sln 并为 3 个项目中的每一个尝试了构建解决方案;rrdlib、rrdtool 和 rrdupdate 但我在所有这些上都失败了。

我正在使用 Windows 2003 R2,但出现以下严重故障:..\src\rrd_restore.c(235):致命错误 C1189:#error:“不知道如何处理 TIME_T,而不是 4 或 8 个字节" rrd_resize.c

..\src\rrd_create.c(15) : 致命错误 C1083: 无法打开包含文件: '../rrd_config.h': 没有这样的文件或目录 pngsize.c

这些是我遵循的安装说明: 以下是使用 Microsoft Visual Studio 2008 (9.0.x) 构建 rrdlib.lib 和 rrdtool.exe 1.3.5 版和更新版本的分步说明。

(1) 在这个文本文件所在的目录下创建一个名为“contrib”的文件夹。

(2) 将rrdtool依赖的以下库下载到该文件夹​​中:

- cairo:    http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.8.10-3_win32.zip 
  and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.8.10-3_win32.zip

- glib:     http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.24/glib_2.24.1-1_win32.zip
  and       http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.24/glib-dev_2.24.1-1_win32.zip

- libpng:   http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.4.0-1_win32.zip
  and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng-dev_1.4.0-1_win32.zip

- libxml2:  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2_2.7.7-1_win32.zip
  and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2-dev_2.7.7-1_win32.zip

- pango:    http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango_1.28.0-1_win32.zip
  and       http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango-dev_1.28.0-1_win32.zip

- zlib:     http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib_1.2.4-2_win32.zip
  and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev_1.2.4-2_win32.zip

- fontconfig:  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig_2.8.0-2_win32.zip

- freetype: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype_2.3.12-1_win32.zip

- expat:    http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat_2.0.1-1_win32.zip

(3) 将所有 .zip 文件解压到 contrib 文件夹中。不要将每个库提取到它自己的目录中。我们希望将所有文件合并到一个由“bin、include、lib...”等文件夹组成的结构中。

(4) 打开 rrdtool 文件夹的 win32 文件夹中的 Visual Studio 2008 解决方案“rrd.sln”并构建项目 rrdlib(用于 rrdtool-library)、rrdtool(用于 rrdtool-executable,具体取决于库)或完整的解决方案。当您构建可执行文件时,构建后事件会自动复制 rrdtool 所需的所有 dll,位于 .exe 旁边。这些 DLL 必须在运行 rrdtool 的所有主机上可用。

有什么建议么?

4

1 回答 1

1

这是因为rrd_config.hWin32 构建缺少该文件。在 Linux 中,可以通过配置进程创建该文件。我通过手动修改源代码摆脱了这个问题。只需替换以下代码块rrd_restore.c

#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

和:

temp = strtoll((char *)text,NULL, 0);

并删除 rrd_create.c 中的 include 语句:

#include "../rrd_config.h"

然后可以无错误地完成构建过程。

另一种选择,如下浏览网址。

于 2013-07-22T06:23:40.357 回答