1

离散 ruby​​ 扩展模块的源代码可以存在于同一个目录中,由同一个extconf.rb脚本控制吗?

背景:我有一个包含两个扩展模块foo.sobar.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玩。

4

1 回答 1

2

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

您可以使用 mkmf 替代方案之一(例如 mkrf)将扩展名放在同一目录中;我不知道这是否会奏效。我曾经想做同样的事情,但最终发现随着我的库的增长,为我的扩展提供多个目录对于保持项目的组织性变得可取。

于 2010-01-05T17:20:41.533 回答