編寫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()
這種函數原型.

會在第一次初始化的時候調用.

可以在這個函數裏作一些類和函數的定義.

相關文章
相關標籤/搜索