美文网首页
ruby使用c++扩展例子

ruby使用c++扩展例子

作者: 一路向后 | 来源:发表于2022-12-23 21:09 被阅读0次

1.extconf.rb

require 'mkmf'

$libs = '-lstdc++'

create_makefile 'foo'

2.foo.cc

#include "ruby.h"

VALUE plus(VALUE self, VALUE va, VALUE vb)
{
    int a = NUM2INT(va);
    int b = NUM2INT(vb);

    return INT2NUM(a+b);
}

extern "C" void Init_foo()
{
    VALUE foo = rb_define_module("Foo");

    rb_define_module_function(foo, "plus", RUBY_METHOD_FUNC(plus), 2);
}

3.生成so文件

$ ruby extconf.rb
$ make site-install

4.测试文件 test.rb

require 'foo'

puts Foo.plus(3, 4)

5.运行及结果

$ ruby test.rb
7

相关文章

  • ruby使用c++扩展例子

    1.extconf.rb 2.foo.cc 3.生成so文件 4.测试文件 test.rb 5.运行及结果

  • Go编写Ruby扩展

    本文将会介绍,使用Go语言编写 Ruby的扩展程序 Ruby-FFI Ruby-FFI 是一个以编程的方式加载动态...

  • Node.js介绍4-Addon

    Node底层机制使用C++写的,所以我们如果想扩展功能,可以选择使用C++从底层扩展,以前已经介绍过何如嵌入V8到...

  • 如何一句话介绍好自己

    我拿自己在简书的简介做例子, Java/C++程序员,喜欢 Javascript 和 Ruby,DHH是偶像 第一...

  • 【转】BurpSuite插件配置

    Burp插件的使用 使用准备 Burpsuite可以使用三种语言编写的扩展插件,Java、Python和Ruby。...

  • 简书的代码高亮展示(夜间阅读模式)——to刘mingxing

    c c++ java python ruby php

  • Ruby语言基础

    ruby语言基础 1.ruby简介 编程界几大魔幻语言,c++、JavaScript、ruby和perl等,个个都...

  • pybind11使用

    前言 为了使用C++ 编写python的扩展程序, 需要使用pybind11, pybind11使用比较简单,文档...

  • Ruby中的Module

    Ruby中没有Java语言中的interface,Ruby只支持单继承。Ruby通过Mix-in提供对类的扩展,其...

  • [Ruby]语法

    所有的 Ruby 文件扩展名都是.rb 运行文件 $ rubytest.rb Ruby 程序中的空白 在 Ruby...

网友评论

      本文标题:ruby使用c++扩展例子

      本文链接:https://www.haomeiwen.com/subject/ogkiqdtx.html