ruby - 如何让 ruby​​-svm 在 macports'/opt/local 中查找库?

标签 ruby macos macports svm

我想安装 Ruby SVM。我已经有了正常设置的 macports,并且通过端口安装了 libsvm 就好了。但是当我去编译 ruby​​svm 时,它 barfs。 :(

ruby 支持向量机:http://rubysvm.cilibrar.com/download/ (虽然大多数链接都是 404) libsvm:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

试试这个:

sudo port install libsvm
wget http://debian.cilibrar.com/debian/pool/main/libs/libsvm-ruby/libsvm-ruby_2.8.4.orig.tar.gz
tar -xzf libsvm-ruby_2.8.4.orig.tar.gz
cd libsvm-ruby-2.8.4
./configure

...你得到错误:

...
checking libsvm/svm.h usability... no
checking libsvm/svm.h presence... no
checking for libsvm/svm.h... no
Error, cannot find LIBSVM svm.h header.

我试过了,没有成功:

export DYLD_LIBRARY_PATH=/opt/local/include/:/opt/local/lib/
(... ditto for C_INCLUDE_PATH, LD_LIBRARY_PATH, CPATH, & LIBRARY_PATH)
LDFLAGS="-I/opt/local/include -L/opt/local/lib" CPPFLAGS="-I/opt/local/include -L/opt/local/lib" ./configure

我该如何解决这个问题?

最佳答案

libsvm-ruby 假定 libsvm 在 PREFIX/include/libsvm/svm.h 中安装它的 header ,但 macports 包将它放在 /opt/local/include 中。

这有点麻烦,但最简单的解决方法是手动创建目录 /opt/local/include/libsvm 并将 svm.h header 移动/复制到那里。您可能仍然需要使用 LDFLAGS 和 CPPFLAGS 设置运行您的配置命令,因为它看起来像 macports 安装不更新 pkg-config(libsvm-ruby 用来尝试查找编译器标志)。

我会将此作为包错误报告给 macports 维护者。如果您了解 macport 的 Portfiles,您甚至可以提供补丁。

更新:我还没有真正尝试过这个,所以一旦你通过了头文件检测,可能还会有其他问题。

更新 2:我能够通过配置:

sudo mkdir /opt/local/include/libsvm
sudo cp /opt/local/include/svm /opt/local/include/libsvm/
CPPFLAGS=-I/opt/local/include LIBS=-L/opt/local/lib ./configure

但 libsvm-ruby 似乎依赖于 obstack.h,它在 OS X 上并不存在。基于 this ,可能有一种方法可以复制您需要的文件,但您需要修补 libsvm-ruby main.cpp 和 Makefile 以将其链接进来。

祝你好运!

关于ruby - 如何让 ruby​​-svm 在 macports'/opt/local 中查找库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2189589/

相关文章:

php - Ruby 相当于 PHP 的 $this

ruby-on-rails - 葡萄,将 JSON 作为参数发送

excel - 当我按下取消按钮时如何退出 do 循环

python安装找不到psycopg2 ImportError

macos - 用其他包替换 MacPorts 依赖项

安装 automake : Warning: Deactivate forced. 时出现 Macports 警告尽管有依赖性但仍继续

arrays - 将数据库中现有的字符串字段类型转换为数组字段类型 | Rails + PostgreSQL

ruby - 以文本/ASCII 形式呈现水平二叉树的算法

cocoa - 如何强制 NSToolBar 验证?

macos - 如何在 os x 下以编程方式启用屏幕缩放/放大?