问题
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