首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法安装recommendify gem - hiredis.h未找到

无法安装recommendify gem - hiredis.h未找到
EN

Stack Overflow用户
提问于 2013-12-15 12:12:22
回答 2查看 1.8K关注 0票数 1

我正在尝试安装再推荐宝石。

这个创业板试图编译一个名为recommendify的本地bin,使其比ruby的解析器更快。

首先,我试图像其他常见的创业板一样安装:

代码语言:javascript
复制
gem install recommendify

这是一个错误:

代码语言:javascript
复制
➜  ~  gem install recommendify
Building native extensions.  This could take a while...
ERROR:  Error installing recommendify:
ERROR: Failed to build gem native extension.

    /Users/villa/.rbenv/versions/1.9.3-p448/bin/ruby extconf.rb

make mkdir -p ../bin
gcc -Wall recommendify.c -lhiredis -o ../bin/recommendify
recommendify.c:4:10: fatal error: 'hiredis/hiredis.h' file not found
#include <hiredis/hiredis.h>
     ^
1 error generated.
make: *** [build] Error 1

其次,我安装了brew:

代码语言:javascript
复制
brew install hiredis

现在,如果我搜索雇用人员,我可以看到:

代码语言:javascript
复制
➜  ~  brew list hiredis
/usr/local/Cellar/hiredis/0.11.0/include/hiredis/ (5 files)
/usr/local/Cellar/hiredis/0.11.0/lib/libhiredis.0.10.dylib
/usr/local/Cellar/hiredis/0.11.0/lib/ (3 other files)
➜  ~  find /usr/local/include -name hiredis
/usr/local/include/hiredis
➜  ~  ls -al /usr/local/include/hiredis
lrwxr-xr-x  1 villa  admin  40 15 dic 12:54 /usr/local/include/hiredis -> ../Cellar/hiredis/0.11.0/include/hiredis

在我的路径中包含'/usr/local/include‘->,安装时的目录:

代码语言:javascript
复制
➜  ~  echo $PATH
/usr/local/include:/Users/villa/.rbenv/shims:/usr/local/Cellar/elixir/0.10.3/bin:/Users/villa/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

有什么想法吗?提前感谢

编辑1 *

我尝试了第一个答案的解决办法:

代码语言:javascript
复制
gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0

还包括:

代码语言:javascript
复制
gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0/include/hiredis

有两个相同的错误:

代码语言:javascript
复制
Building native extensions.  This could take a while...
ERROR:  Error installing recommendify:
    ERROR: Failed to build gem native extension.

        /Users/villa/.rbenv/versions/1.9.3-p448/bin/ruby extconf.rb --with-hiredis-dir=/usr/local/include/hiredis

make
mkdir -p ../bin
gcc -Wall recommendify.c -lhiredis -o ../bin/recommendify
recommendify.c:4:10: fatal error: 'hiredis/hiredis.h' file not found
#include <hiredis/hiredis.h>
         ^
1 error generated.
make: *** [build] Error 1

编辑2 *

我用rbenv重新安装了xcode、行命令工具和ruby,解决了这个问题。我不知道这三个元素中的哪一个是问题所在,但现在它起作用了:D

感谢每个人

EN

回答 2

Stack Overflow用户

发布于 2013-12-15 13:36:02

有些宝石是纯红宝石,而另一些(主要是针对现有c/c++库的特定平台链接,例如绑定)是用ruby和c/c++编写的。用c/c++编写的部分称为native extensions。要编译它们,您需要:

  • 建立工具;
  • ruby开发环境;
  • 此特定gem所需的附加库/标头。

在您的示例中,您似乎满足了前两个需求,而您的系统无法找到hiredis的开发文件。总结:

代码语言:javascript
复制
gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0

应该解决这个问题。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2016-02-29 22:43:50

在ubuntu上,在安装libpq-dev之后,我能够获得这个gem安装。

代码语言:javascript
复制
sudo apt-get install libpq-dev
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20594338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档