# 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的mkmf库构建扩展的Makefile,并解释了配置过程中的关键步骤,包括指定链接库、头文件和库文件路径,最终生成Makefile以构建C库。
1321

被折叠的 条评论
为什么被折叠?



