gem install cannot find a header file

我的未来我决定 提交于 2019-12-18 07:17:32

问题


Following along the github README for talib_ruby:

sudo port install ta-lib

Complete. Next is where the trouble begins.

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

This install fails I believe because apparently it cannot find the ta_abstract.h file

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

.
.
.
many more errors

I have included in my .bash_profile file the following:

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

And indeed the ta_abstract.h file is located where I'm saying in the ABSOLUTE_PATH variable assignment.

What gives?

UPDATE:

When all else fails, email correspondence with the gem author may help. Instead of export ABSOLUTE_PATH, he suggests passing the actual path in with the install. Along with explicitly passing in ARCHFLAGS="-arch x86_64", which works for Snow Leopard. The install still fails but now because it has issues with the talib.c file and certain functions therein.


回答1:


The answer to this question was answered by the gem author via email, but I'd like to share the solution.

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

It is important to note that this gem is also not compatible with Ruby 1.9.2. From what the error list generated, it had some issues with the definition of struct RObject (fill in Object with String, Array, etc), which I traced to the ruby.h header file. If you'd like to use this gem, you can install rvm and then type

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

From there, simply follow the guidance from the gem author with the input listed above.

UPDATE: the gem author has made talib_ruby compatible with 1.9.x so there is no longer a need to install 1.8.7




回答2:


Observe

sudo echo $ABSOLUTE_PATH_TO_TALIB_HEADERS

echo ABSOLUTE_PATH_TO_TALIB_HEADERS

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

sudo

Are you root?

put the env vars on the command line and you should be good, alternatively add them to root's env.




回答3:


Just adding an answer for brew installed 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



来源:https://stackoverflow.com/questions/4618376/gem-install-cannot-find-a-header-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!