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

时间:2010-02-03 03:59:50

标签: ruby macos macports svm

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

Ruby SVM: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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

libsvm-ruby假设libsvm在PREFIX/include/libsvm/svm.h中安装其标头,但是macports包将其放在/opt/local/include中。

这是一个kludge,但最简单的解决方法是手动创建目录/opt/local/include/libsvm并在那里移动/复制svm.h标头。您可能仍需要使用LDFLAGS和CPPFLAGS设置运行configure命令,因为看起来macports install不会更新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来链接它。

祝你好运!