# 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
而後make ruby的C庫就生成了.io
假設想要全局使用 make install 就行了.event
而後就是代碼裏要注意的class
必須要有一個thread
void Init_fsnet()這種函數原型.
會在第一次初始化的時候調用.
可以在這個函數裏作一些類和函數的定義.