无法编译rrd
Posted
技术标签:
【中文标题】无法编译rrd【英文标题】:Failing to compile rrd 【发布时间】:2013-06-06 12:36:07 【问题描述】:我在使用 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
这些是我遵循的安装说明: 以下是构建 rrdlib.lib 和 rrdtool.exe 的分步说明 Microsoft Visual Studio 2008 (9.0.x) 的 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) 打开win32文件夹下的Visual Studio 2008解决方案“rrd.sln” 您的 rrdtool 文件夹并构建项目 rrdlib(对于 rrdtool-library), rrdtool (对于 rrdtool-executable 取决于 图书馆)或完整的解决方案。构建后事件自动复制 当您构建 .exe 时,rrdtool 所需的所有 dll 可执行。这些 DLL 必须在 rrdtool 所在的所有主机上都可用 运行。
有什么建议吗?
【问题讨论】:
【参考方案1】:这是因为 Win32 构建缺少 rrd_config.h
文件。在 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"
那么构建过程就可以顺利完成了。
另一个选择,浏览网址为follow。
【讨论】:
以上是关于无法编译rrd的主要内容,如果未能解决你的问题,请参考以下文章
cacti 不出图 rrd问题 cacti为啥不出图热门博客列表