离散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
。
答案 0 :(得分:2)
使用mkmf,您需要使用单独的目录;它不是为在同一目录中放置多个扩展而设计的。
您可以使用其中一个mkmf替代品(例如mkrf)将扩展名放在同一目录中;我不知道这是否有效。我曾经想做同样的事情,但最终发现随着我的图书馆的发展,我的扩展名有多个目录,这对于保持项目的组织是可取的。