2010-02-03 6 views
4

Ruby SVM을 설치하고 싶습니다. 나는 이미 정상적인 설정을 가진 macports를 가지고 있고 포트를 통해 libsvm을 설치했다. 그러나 rubysvm을 컴파일하기 위해 갈 때, 그것은 barfs입니다. :(ruby-svm에서 macports '/ opt/local에서 라이브러리를 찾는 방법은 무엇입니까?

루비 SVM : http://rubysvm.cilibrar.com/download/ (대부분의 링크가 있지만 404입니다) 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 

을 ... 당신은 오류 얻을 : http://www.csie.ntu.edu.tw/~cjlin/libsvm/

이 시도

... 
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 

어떻게 수정합니까?

+0

일반적으로 LDFLAGS에는 -L args 만 넣고 CPPFLAGS에는 -I args 만 넣으면됩니다. 올바른 컨텍스트에서 * FLAGS 변수를 사용하지 않는 구성 스크립트는 잘못 작성된 것입니다. –

+0

AFAICT는 그것을 존중하지 않습니다. 그러나 configure 스크립트는 내가 간신히 파싱 할 수있는 자동 스파게티의 미친 엉터리입니다. – Sai

답변

1

libsvm-ruby는 libsvm이 헤더를 PREFIX/include/libsvm/svm.h에 설치한다고 가정하지만 macports 패키지는 /opt/local/include에 넣습니다.

가장 큰 문제는 수동으로 디렉토리를 /opt/local/include/libsvm으로 만들고 svm.h 헤더를 이동/복사하는 것이 가장 쉽습니다. macports 설치가 pkg-config (libsvm-ruby가 컴파일러 플래그를 찾기 위해 사용하는)를 업데이트하지 않는 것처럼 보이기 때문에 LDFLAGS 및 CPPFLAGS 설정을 사용하여 configure 명령을 실행해야 할 수도 있습니다.

나는 이것을 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 - 루비는 this을 기반으로 OS X에서 기본적으로 존재하지 않는, obstack.h에 의존 나타납니다 , 필요한 파일을 복사하는 방법이있을 수 있지만 libsvm-ruby main.cpp와 Makefile을 패치하여 연결해야합니다.

행운을 비네!

+0

나는 이미 성공을 거두지 않고 이것을 시도했다. : - / – Sai