C代码中调用Ruby

最近的项目使用了,从Ruby调用C的代码还是比较简单,尤其是利用SWIG来生成代码。

 

现在有个问题,怎样从C/C++中调用ruby的代码?

 

查看了网上一些资料,发现这方便的东西太少。

找到http://blog.csdn.net/daiyuchao/archive/2008/07/08/2625775.aspx,不过这个编译之后,运行会出错。

后来查看了:http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/14864 

 

改写了相应的代码。运行正确。

 

同时在原有的基础上,我增加了获取字符串的调用,发现也很不错。呵呵

 

我把C的代码贴出来:

 

Test.c代码


 

 

ruby的代码 sum.rb为:

 

getString是我加入的, 编译运行之后产生输出:

hello,2
hello,3
hello 1Sum to 5 is 10
Sum to 10 is 45
Sum to 15 is 105
Sum to -1 doesn't compute!
Sum to 20 is 190
Sum to  Hello, I'm from Ruby3That's wonderful Id

 

 

至于怎样编译此c文件,建议去参考怎样编译ruby的环境吧。

我使用的是 mingw 来编译ruby的。

然后link的时候可以使用下面的参数:
g++ -o  Your.exe Test.o  -L. -LC:/ruby-1.9.1/usr/local/lib -L.  -Wl,--enable-auto-
image-base,--enable-auto-import   -lmsvcrt-ruby191 -lstdc++  -lshell32 -lws2_32

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值