什么是Rubygem相当于'-I'标志?

时间:2012-01-30 23:04:02

标签: ruby gem

当我使用gcc构建项目时,我可以使用非常有用的-I标志来指定其他包含dirs。有时,gems需要编译代码,但我不能使用-I标志。具体来说,我无法在我的机器上构建RMagick,因为它在MagickWand步骤中失败了:

checking for wand/MagickWand.h... no

我确切知道MagickWand.h的确切位置。我如何告诉宝石在哪里找到它?

更新 我的系统上有两个版本的ImageMagick(用于工作),gem抛出了这个错误:

Warning: Found more than one ImageMagick installation. This could cause problems at runtime.
     /a/Magick-config reports version 6.5.8 Q8 is installed in [a]
     /b/Magick-config reports version 6.6.4 Q16 is installed in [b]
Using 6.5.8 Q8 from [a].

gem正在使用版本[a],而我希望它使用版本[b] ...但我找不到任何方法让它切换到[b]。据我所知,gem不会咨询我的$PATH

1 个答案:

答案 0 :(得分:0)

guides表示您可以传递构建选项

  

如果在gem安装期间扩展无法编译,则不会写出gem规范,但gem仍会在存储库中解压缩。您可能需要指定库的标头和库的路径才能继续。您可以通过在RubyGems的选项和扩展的构建选项之间添加一个来完成此操作:

$ gem install some_extension_gem
[build fails]
Gem files will remain installed in /path/to/gems/some_extension_gem-1.0 for inspection.
Results logged to /path/to/gems/some_extension_gem-1.0/gem_make.out
$ gem install some_extension_gem -- --with-extension-lib=/path/to/lib
[build succeeds]
$ gem list some_extension_gem

*** LOCAL GEMS ***

some_extension_gem (1.0)
$

对你而言,这听起来像gem install rmagick -- -I /path/to/MagickWand.h,但我不确定如何尝试验证。