编写ruby扩展库

# 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)  


先创建一个这种文件.ruby

事实上比較简单易懂.函数

无非就是标记好要链接的链接库ui

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

而后create_makefile 就行了.原型


而后it

ruby extconf.rb

假设没出错.就会本身主动生成Makefile文件在当前路径.

而后make  ruby的C库就生成了.io

假设想要全局使用 make install 就行了.event


而后就是代码里要注意的class

必须要有一个thread

void Init_fsnet()
这种函数原型.

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

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

相关文章
相关标签/搜索