当我在我的本机C扩展中包含我正在编写的gem时,我收到以下错误:
../../../../ext/my_file/my_file.c:4:42: error: unknown type name 'RUBY_T_FIXNUM'
以下是我在代码中使用它的地方:
#include <stdlib.h>
#include <ruby-2.3.0/ruby.h>
void my_file_init(const T_STRING prog, T_FIXNUM verbose) {}
我在/ usr / local / include中添加了一个链接到〜/ .rvm / rubies / default / include / ruby-2.3.0,这是我要安装的ruby版本的地方。我可以在ruby头文件中找到T_FIXNUM常量的唯一定义是在ruby / ruby.h中的枚举中:
enum ruby_value_type {
...
RUBY_T_FIXNUM = 0x15
};
这是ruby / ruby.h文件定义T_FIXNUM类型的地方:
#define T_FIXNUM RUBY_T_FIXNUM
我是否包含错误的文件?我有错误的Ruby版本吗?我正在研究OSX,我使用RVM来管理我的红宝石。我在x86_64-darwin16 / ruby目录中添加了config.h的符号链接,以及从ruby目录到自身的链接。