2013-08-18 2 views
1

데비안 Sqeeze에서 g ++ 4.4를 사용하고 있습니다. 내가 헤더와 간단한 부스트 매트릭스 example 실행할 수 있어요 :linux에 헤더 전용 (odeint) 라이브러리를 설치하는 방법은 무엇입니까?

#include <boost/numeric/ublas/matrix.hpp> 
#include <boost/numeric/ublas/io.hpp> 

을하지만 또한 odeint 헤더를 추가 할 : 그러나

#include <boost/numeric/odeint.hpp> 

을 내는/usr/포함으로 가능하지 않다/부스트/숫자 폴더 목록 만

odeint 설치 방법은 무엇입니까?

odeint은 헤더 전용 라이브러리이므로 미리 컴파일 된 코드에 대한 링크가 필요하지 않습니다. .tar을 다운로드하고 odeint 폴더와 odeint.hpp 파일을/usr/include/boost/numeric 폴더에 복사했습니다. 그러나 작동하지 않습니다.

내 부스트 라이브러리를 설치 제거한
error: boost/range/algorithm/copy.hpp: No such file 
+1

부스트 :: 범위가 설치되어 있습니까? odeint 헤더를 찾는 것은 괜찮지 만 그 중 하나에는 범위 라이브러리의 헤더가 포함되어 있습니다. – deong

+0

@deong : Thanx, 부스트/범위/알고리즘이 없습니다. 아마도 [boost_1_54_0.tar.bz2.] (http://www.boost.org/doc/libs/1_54_0/more/getting_started/unix-variants.html) 대신에 패키지 된 debian을 설치했기 때문일 것입니다. 이제 boost_1_54_0.tar.bz2를 설치했고 odeint가이 배포본에 포함되어 모든 것이 작동합니다. – cpp

답변

0

odeint을 포함하지 않는

apt-get install libboost1.42-dev 

을 통해 : 컴파일에 나는 오류가 발생합니다. 그런 다음 이미 odeint가 들어있는 boost_1_54_0.tar.bz2.을 설치했습니다. 이제 odeint 프로그램을 실행할 수 있습니다. this.

+0

이제 버전이 2 가지가 될 수 있습니다. 의도하지 않게 혼합하면 ODR 위반 가능성이 커집니다. –

+0

@Igor R. 이전/usr/include/디렉토리에서 부스트 디렉토리를 제거했습니다. 이전 1.42 부스트 버전을 제거하는 것으로 충분하지 않습니까? – cpp

+0

죄송합니다. 아마도 당신을 오해했을 것입니다. 헤더와 바이너리를 모두 제거했다면 괜찮습니다. 사실 여러 개의 Boost 버전을 가지고있는 것도 합법적이지만, 결코 혼합해서는 안됩니다. –

관련 문제