问题标签 [ruby-c-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 用于图形的 C 库
是否有用于图论操作的良好 C 库?我特别需要计算有向图的强连通分量。我在 Ruby 中实现了Tarjan 的算法,如下所示:
它正在处理小图,但随着图变大,由于递归调用方法,它开始返回“堆栈级别太深”错误strong_connect
。我想我需要一个 C 库并从编写主程序的 Ruby 访问它。
除了库之外,任何在 Ruby 库中使用它的建议都会有所帮助。
ruby - OS X 中内置的 Ruby 扩展可以在 Linux 上运行吗?
我想为将在 CentOS 服务器上运行的 C(带有 C++ 库)程序制作 Ruby 扩展,但在 Mac 上工作对我来说会更方便(尤其是无需重新安装所有第 3 方库)。
由于它们都是基于 UNIX 的,所以一旦我把它放在 CentOS 上,在 OS X 中创建库会不会把它扔掉,或者我应该只是手动安装 CentOS,然后在那里完成所有工作?
谢谢!
c++ - 带有 g++ 的不需要的警告消息
我正在尝试为 Ruby 编写一个 c++ 扩展。除了主文件,我还有一个文件extconf.rb
:
并且,在完成之后ruby extconf.rb
,当我尝试g++
通过键入来编译它时make
,我收到警告:
我读到它没有害处,但是有没有办法避免这个警告?这里有一个人有同样的问题,但找不到解决方案。
c++ - 编译 Ruby C++ 扩展
我正在尝试为 Ruby 编译一个 c++ 扩展,编译没有返回错误,但似乎编译不正确。我究竟做错了什么?
我有主要的 cpp 脚本foo.cpp:
和extconf.rb:
在这些文件的目录中,我做了
然后,我有一个 Ruby 脚本test.rb:
我跑test.rb
。它返回一个错误:
我究竟做错了什么?
环境
- 操作系统:Ubuntu Linux 11.10
- 红宝石:1.9.3
c++ - 如何将从 Ruby 数组中取出的字符串转换为 C/C++ 字符串
我正在为 Ruby 编写 C++ 扩展,并尝试从 Ruby 数组对象中提取 Ruby 字符串对象,并将其转换为 C/C++ 字符串对象。
我有foo.cpp:
和test.rb:
当我尝试编译foo.cpp
时,编译器返回一个错误,说“一个术语和操作数需要左侧值”(不是确切的消息。翻译自另一种自然语言中给出的错误消息)。这是关于我对StringValuePtr
. 我做错了什么,如何解决?
c++ - C++ std::string 到 Ruby VALUE
如何将 C++std::string
对象转换为 RubyVALUE
对象?
我试过rb_str_new2(c_string)
了,但没有用。
我有一个功能
并给出一条错误消息:
ruby - 用于系统调用的 Ruby C 绑定与 Ruby 包装器
Ruby C 绑定的执行与系统调用的 Ruby 包装器之间的主要区别是什么?
对于我的问题,我正在考虑将 Git 版本控制功能大量整合到 Ruby on Rails 应用程序中。在处理这项任务时,我不明白如何考虑 Ruby 程序的执行管道,该程序包含使用 Ruby C 绑定(如yajl-ruby )实现的库与用于系统调用(如git Ruby Gem )的 Ruby 包装器。
c - Ruby C API`定义?SomeConstant 等价物?
我正在尝试将 if 条件转换为:
成为原生 C 扩展的一部分。有人知道如何defined?
在 C API 中进行谓词检查吗?
编辑 | 我想我可以调用:
尽管这在语义上显然略有不同。
c - 如何在 ruby c 扩展中覆盖 rb_ 函数?
我无法弄清楚如何在 c 中覆盖 rb_ 函数(如 rb_ivar_get)。我有以下代码:
以及以下测试:
其输出仅为:
我的想法是 ruby 链接器掩盖了我对 rb_ivar_get、rb_attr_get 和 rb_ivar_set 的定义及其在 variables.c 中的定义。我对吗?如果是这样,我该如何改变它,使我的方法掩盖了红宝石,而不是相反。
ruby-on-rails - 扩展 Rails 3.2 的最佳方式
我有我的自定义控制器、模型、一堆视图、助手和其他东西,它们封装了足够用于我工作涉及的 Rails 应用程序的特定数量的用户管理功能。
我想要的是创建某种扩展,以便能够将我所有的自定义内容快速添加到新的 Rails 应用程序中。我对 Ruby on Rails 很陌生,但我知道最后有三种方法可以扩展 Rails - 使用 gems、生成插件或 Railtie。问题是 - 在我的情况下最好的方法是什么?