gem install找不到头文件

跟随talib_ruby的github自述文件:

sudo port install ta-lib 

完成。 接下来是麻烦开始的地方。

 sudo env ARCHFLAGS="-arch PLATFORM" gem install talib_ruby -- --with-talib-include=ABSOLUTE_PATH_TO_TALIB_HEADERS --with-talib-lib=ABSOLUTE_PATH_TO_TALIB_LIBS 

这个安装失败我相信因为显然它找不到ta_abstract.h文件

 talib.c:2:25: error: ta_abstract.h: No such file or directory . . . many more errors 

我在.bash_profile文件中包含以下内容:

 export ABSOLUTE_PATH_TO_TALIB_HEADERS=/opt/local/var/macports/software/ta-lib/0.4.0_0/opt/local/include/ta-lib export ABSOLUTE_PATH_TO_TALIB_LIBS=/opt/local/var/macports/software/ta-lib/0.4.0_0/opt/local/lib 

实际上ta_abstract.h文件位于我在ABSOLUTE_PATH变量赋值中所说的位置。

是什么赋予了?

更新:

当所有其他方法都失败时,与gem作者发送电子邮件通 他建议使用安装传递实际路径,而不是导出ABSOLUTE_PATH。 同时显式传入ARCHFLAGS =“ – arch x86_64”,适用于Snow Leopard。 安装仍然失败,但现在因为它有talib.c文件和其中的某些function的问题。

gem作者通过电子邮件回答了这个问题的答案,但我想分享解决方案。

 sudo env ARCHFLAGS="-arch x86_64" gem install talib_ruby -- --with-talib-include=/opt/local/var/macports/software/ta-lib/0.4.0_0/opt/local/include/ta-lib --with-talib-lib=/opt/local/var/macports/software/ta-lib/0.4.0_0/opt/local/lib 

值得注意的是,这个gem也与Ruby 1.9.2不兼容。 从错误列表生成的内容来看,它对struct RObject的定义(填充Object with String,Array等)有一些问题,我追溯到ruby.h头文件。 如果你想使用这个gem,你可以安装rvm然后输入

 rvm install ruby-1.8.7 --with-readline-dir=/opt/local 

从那里,只需按照gem作者的指导,使用上面列出的输入。

更新:gem作者使talib_ruby与1.9.x兼容,因此不再需要安装1.8.7

sudo echo $ABSOLUTE_PATH_TO_TALIB_HEADERS

echo ABSOLUTE_PATH_TO_TALIB_HEADERS

 have included in **my** .bash_profile file the following: 

sudo

你是root吗?

将env变量放在命令行上你应该很好,或者将它们添加到root的env中。

只需添加brew安装ta-lib的答案。

env ARCHFLAGS =“ – arch x86_64”gem install talib_ruby – –with-talib-include = / usr / local / include / ta-lib –with-talib-lib = / usr / local / lib