在 Windows 上为 Ruby gem 安装 ta-lib 的指南

Guide to installing ta-lib on Windows for Ruby gem

我已经尝试了很长时间来安装 ta-lib,因此我可以使用一些基于 this github 示例的指标函数进行交易。到目前为止,我已经确定我需要:

  1. 运行 gem install talib_ruby

    C:\Users\king\Desktop\_REPOS\misc\stock_analysis\forex\oanda\ruby>gem install talib_ruby
    Temporarily enhancing PATH to include DevKit...
    Building native extensions.  This could take a while...
    ERROR:  Error installing talib_ruby:
        ERROR: Failed to build gem native extension.
    
    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20160810-7176-j5lye2.rb extconf.rb
    checking for TA_Initialize() in -lta_lib... no
    creating Makefile
    
    make "DESTDIR=" clean
    
    make "DESTDIR="
    generating talib-x64-mingw32.def
    compiling talib.c
    talib.c:2:32: fatal error: ta-lib/ta_abstract.h: No such file or directory
    compilation terminated.
    make: *** [talib.o] Error 1
    
    make failed, exit code 2
    ....
    
  2. here

  3. 下载msvc中的ta-lib头文件
  4. 安装时告诉talib_rubygemta-lib文件所在的位置。基于 this SO post,正确的命令应该类似于: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 。该命令指定了我下载的 ta-lib 中缺少的 lib 文件夹的路径。有谁知道如何解决这个问题?

Windows? 对不起我的英语不好。 我的系统:Windows 7 SP1 x64,ruby 2.2.4p230

  1. 您必须安装 Ruby 开发工具包才能构建二进制扩展。
  2. 下载解压source,我用的是ta-lib-0.4.0-src.tar.gz.
  3. 运行 msys.bat 来自 Ruby DevKit,或者如果您安装了 mingw 作为 RubyInstaller 的一部分,运行 或者 mingw64.exeming32.exe。导航到 ta-lib 源文件(在我的例子中是 /d/dev/ta-lib)并构建库:

    cd /d/dev/ta-lib
    ./configure
    make
    
  4. 因为gem中的C头文件路径hardcoded#include <ta-lib/ta_abstract.h>,我只是在[=18=中创建了一个新目录ta-lib ] 源文件夹和所有复制头文件在这里。 (d:\dev\ta-lib\include*.h中的文件复制到d:\dev\ta-lib\include\ta-lib)

  5. 安装 gem。退出 msys 或 mingw 终端,然后 运行 在 Windows cmd 中输入以下内容。请务必将这些路径替换为您的 ta-lib 源的正确路径:

    gem install talib_ruby -- --with-talib-include=d:/dev/ta-lib/include --with-talib-lib=d:/dev/ta-lib/src/.libs
    

    确保将路径更改为您的路径。