我如何检索“独立”文件Ruby 的 C 扩展 API 上的符号
我想从 C 函数返回多个值,恕我直言,哈希是一个不错的选择。 我首先使用 rb_intern('A_KEY') 创建密钥,但扩展程序崩溃了。现在,我使用 rb_str_new2…
如何编译/创建使用 c 的 ruby 扩展?
我想创建一个使用 c 的 ruby 扩展。但是当我用 gcc 编译它时,我收到此错误: gcc rubyext.c -orubyext -I /usr/local/include/ruby-1.9.1/ In fi…
Ruby 1.9.1-p378 C 扩展 rb_block_call 怪异
我正在处理一个相当基本的迭代。我知道我可以使用 Ruby 代码来完成它,但我已经在 C 扩展中工作,所以我更愿意将此函数与其余代码一起保留在 C 中 - …
如何在 Ruby C API 中有效地合并两个哈希值?
我正在为 Ruby 编写一个 C 扩展,它确实需要合并两个哈希值,但是 rb_hash_merge() 函数在 Ruby 1.8.6 中是静态的。 我尝试改为使用: rb_funcall(has…
如何将 Proc 转换为 Ruby C 扩展中的块?
我在 Ruby C 扩展中存储了一个过程数组,我需要遍历每个过程并对每个过程进行实例评估。 问题是instance_eval只接受块,而不接受过程。 这不是 Ruby …
如何使 rdoc 从我的 c 扩展中正确读取方法参数?
总之,我正在使用 rdoc 为包含 C 扩展的 Ruby 代码生成文档,但我的方法参数出现问题。 Rdoc 无法正确解析它们的名称,而是使用 p1、p2 等。 因此,首…
(U) Ruby 扩展:rb_gc_mark() 和实例变量
我正在编写一个定义类的 ruby 扩展。 如果我使用 Data_Wrap_Struct() 实现 rb_define_alloc_func() 的回调,是否需要手动标记和释放实例变量? 或…