本机 C 扩展(如果库可用)
我正在构建一个本机 C 扩展 Ruby gem,用于生成唯一标识符(可在此处找到)。我希望库尽可能使用 libuuid (通过 C 扩展)并回退到简单的 Ruby 实现。我目前拥有用于生成 UUID 的 C 和 Ruby 代码,但是我不知道如何配置成功的后备。有什么想法吗?
I'm building a native C extension Ruby gem for generating unique identifiers (found here). I'd like the library to use libuuid if possible (through C extensions) and fall back to a simple Ruby implementation. I currently have both the C and Ruby code for generating the UUID, however I can't figure out how to configure a successful fallback. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
have_library
方法有一个返回值:因此,您应该能够执行以下操作:
然后,如果未定义 USE_RUBY_UUID ,则将 C 设置为使用 libuuid ;如果已定义,则调用 Ruby UUID 库。
奇怪的是,
have_header
< /a> 和have_func
方法 < code>mkmf.rb 为您添加宏:但是
have_library
让您自己完成。The
have_library
method has a return value:So you should be able to do this:
And then set up your C to use libuuid if
USE_RUBY_UUID
is not defined and call into the Ruby UUID library if it is defined.Oddly enough, the
have_header
andhave_func
methods inmkmf.rb
add macros for you:but
have_library
makes you do it yourself.