构建最新的ruby失败:使用未声明的标识符'YAML_VERSION_ *'

时间:2014-01-22 14:52:28

标签: ruby macos ruby-2.1

构建最新的Ruby on OSX失败:

../.././ext/psych/yaml/api.c:11:12: error: use of undeclared identifier 'YAML_VERSION_STRING'
    return YAML_VERSION_STRING;
           ^
../.././ext/psych/yaml/api.c:21:14: error: use of undeclared identifier 'YAML_VERSION_MAJOR'
    *major = YAML_VERSION_MAJOR;
             ^
../.././ext/psych/yaml/api.c:22:14: error: use of undeclared identifier 'YAML_VERSION_MINOR'
    *minor = YAML_VERSION_MINOR;
             ^
../.././ext/psych/yaml/api.c:23:14: error: use of undeclared identifier 'YAML_VERSION_PATCH'
    *patch = YAML_VERSION_PATCH;

为什么会这样?是不是来源测试了?

1 个答案:

答案 0 :(得分:1)

通过将#include "config.h"添加到...yaml/api.c来解决此问题。

但后来出现了其他不同的错误。

我无法理解为什么ruby开发人员发布了错误的源代码。

使用更多信息进行修改:

似乎缺少某些定义(配置失败?)。通过添加

修复了其他错误
#define HAVE_IFADDRS_H 1
#define HAVE_NET_IF_H 1

ext/socket/rubysocket.h。完成这些修复后,编译运行正常。