无法编译rrd

时间:2013-06-06 12:36:07

标签: c++ compiler-construction visual-studio-2008-sp1 rrdtool

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

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

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

我正在使用Windows 2003 R2,我遇到如下严重故障: .. \ src \ rrd_restore.c(235):致命错误C1189:#error:“不知道如何处理除4或8字节以外的TIME_T” rrd_resize.c

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

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

(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)在win32文件夹中打开Visual Studio 2008解决方案“rrd.sln”     你的rrdtool文件夹并构建项目rrdlib(用于     rrdtool-library),rrdtool(对于rrdtool-executable,取决于     图书馆)或完整的解决方案。构建后事件会自动复制     当你构建时,rrdtool所需的所有dll,在.exe旁边     可执行文件。这些DLL必须在rrdtool所在的所有主机上都可用     运行

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

因为Win32构建缺少rrd_config.h文件。在Linux中,该文件可以通过configure进程创建。我通过手动修改源代码来摆脱这个问题。只需替换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"

然后可以完成构建过程而没有错误。

另一个选择,浏览网址为follow