# 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()这种函数原型.
会在第一次初始化的时候调用.
可以在这个函数里作一些类和函数的定义.