作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在这个目录中有以下文件:
~/test/lib/liblost.dylib
~/test/include/lost.h
我试图通过在 irb 中执行以下操作让我的 rubygem 确定上述库是否存在:
ruby-1.9.2-p290 :008 > dir_config('','~/test')
=> ["~/test/include", "~/test/lib"]
ruby-1.9.2-p290 :009 > have_library('lost')
checking for main() in -llost... no
=> false
有人可以解释为什么这不起作用吗?
最佳答案
这看起来是因为使用~
指定了主目录。如果 ~
是单词的第一个字符,shell 只会将其扩展为您的主目录的路径。当 mkmf
构造命令行调用编译器检查库是否存在时,它使用 -L
选项指定要调用的目录,最终看起来像-L~/test/lib
,所以没有展开。您应该能够在 mkmf.log
文件中看到它。
解决方法是避免在目录路径中使用 ~
字符,或者确保它在调用编译器之前得到扩展。
您可以通过将 dir_config('','~/test')
更改为:
dir_config('', File.expand_path('~/test'))
关于ruby - 如何使用 ruby 的 mkmf 链接到外部 c 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139541/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!