我在使用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所在的所有主机上都可用 运行
有什么建议吗?
答案 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。