ruby 我可以从extconf.rb向Rakefile传递信息吗?

dhxwm5r4  于 2023-06-29  发布在  Ruby
关注(0)|答案(1)|浏览(103)

我有一个Ruby gem,我正在用Rake compiler ExtensionTask构建一个原生扩展。我想在基于extconf.rb中计算的信息构建扩展后采取一些操作。我尝试将信息写入extconf.rb中的全局变量,然后在Rakefile中访问这些全局变量,但它们是空的。有没有办法把这些信息转移到Rakefile?

ymzxtsji

ymzxtsji1#

Rake编译器在子进程中调用extconf.rb(这里),所以你不能从Rakefile中访问变量(例如常量)的数据,至少不能直接访问。
基本上,您希望在两个不同的进程之间进行通信。有很多工具可以做到这一点,UNIX或Ruby。以下是一些选项:
1.将序列化数据写入临时文件(我选择JSON),然后读取它。较少涉及的选项,但对于大多数用例来说绰绰有余
1.使用File.mkfifo的FIFO特殊文件,并在另一个线程中读取它。
1.使用DRb,您仍然需要Thread.fork
P.S:我现在明白了,这是很久以前问的,如果你找到了解决方案,我很高兴看到它!

相关问题