一个目录下的多个ruby扩展模块

时间:2009-11-09 15:07:19

标签: ruby extconf.rb

离散ruby扩展模块的源是否可以存在于同一目录中,由相同的extconf.rb脚本控制?

背景:我有一个带有两个扩展模块的项目, foo.so bar.so ,它们目前存在于它们自己的子目录中,如下所示:

myproject/ext/foo/extconf.rb
myproject/ext/foo/foo.c
myproject/ext/foo/foo.h

myproject/ext/bar/extconf.rb
myproject/ext/bar/bar.c
myproject/ext/bar/bar.h

我希望所有.c.h来源都只在ext/extconf.rb文件的控制之下,但我不知道怎么做得到mkmf

1 个答案:

答案 0 :(得分:2)

使用mkmf,您需要使用单独的目录;它不是为在同一目录中放置多个扩展而设计的。

您可以使用其中一个mkmf替代品(例如mkrf)将扩展名放在同一目录中;我不知道这是否有效。我曾经想做同样的事情,但最终发现随着我的图书馆的发展,我的扩展名有多个目录,这对于保持项目的组织是可取的。