码迷,mamicode.com
首页 > 其他好文 > 详细

编写ruby扩展库

时间:2014-07-23 21:05:54      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:ruby   扩展   makefile   c   extension   

# Loads mkmf which is used to make makefiles for Ruby extensions  
require 'mkmf'  
  
# Give it a name  
extension_name = 'fsnet'  

dirs = ["/usr/local/lib"]

$libs += "-levent "
$libs += "-levent_extra "
$libs += "-levent_pthreads "
$libs += "-ljemalloc "


$CFLAGS += " -I/usr/include"
$CFLAGS += " -I/usr/local/include"
$CFLAGS += " -I/usr/local/include/jemalloc"

$LDFLAGS += " -L/usr/lib"
$LDFLAGS += " -L/usr/local/lib"


# The destination  
dir_config(extension_name)  
  
# Do the work  
create_makefile(extension_name)  


先建立一个这样的文件.

其实比较简单易懂.

无非就是标记好要连接的连接库

然后标记好头文件和库文件的路径

然后create_makefile 就好了.


然后

ruby extconf.rb

如果没出错.就会自动生成Makefile文件在当前路径.

然后make  ruby的C库就生成了.

如果想要全局使用 make install 就好了.


然后就是代码里要注意的

必须要有一个

void Init_fsnet()
这样的函数原型.

会在第一次初始化的时候调用.

可以在这个函数里做一些类和函数的定义.




编写ruby扩展库

标签:ruby   扩展   makefile   c   extension   

原文地址:http://blog.csdn.net/frodo_sens/article/details/38068623

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!