나는 우분투 12.04에있다. &은 이미/usr/include에 약간의 부스트가있다. 나는부스트에서 odeint를 사용하는 C++을 컴파일하는 카툰
sudo apt-get install libboost-all-dev
등 많은 파일도 설치했습니다. 나는 다른 패키지가 우분투 repos에서 버전에 의존하므로이 부스트를 제거하고 소스에서 설치하고 싶지 않습니다. 이것은 내가 실행하고자하는 샘플 코드입니다 : -
#include <iostream>
#include <boost/numeric/odeint.hpp>
using namespace std;
using namespace boost::numeric::odeint;
typedef vector<double> state_type;
const double sigma = 10.0;
const double R = 28.0;
const double b = 8.0/3.0;
void lorenz(state_type &x , state_type &dxdt , double t)
{
dxdt[0] = sigma * (x[1] - x[0]);
dxdt[1] = R * x[0] - x[1] - x[0] * x[2];
dxdt[2] = x[0]*x[1] - b * x[2];
}
int main()
{
const double dt = 0.01;
state_type x(3);
x[0] = 1.0 ;
x[1] = 0.0 ;
x[2] = 0.0;
stepper_euler<state_type> stepper;
stepper.adjust_size(x);
double t = 0.0;
for(size_t oi=0 ; oi<10000 ; ++oi,t+=dt)
{
stepper.do_step(lorenz , x , t , dt);
cout << x[0] << " " << x[1] << " " << x[2] << endl;
}
}
처음 컴파일 g++ -o test test.cpp
ON, 그것은 반복적으로
/usr/include/boost/numeric/odeint.hpp permission denied
그래서 나는 모든 odeint 파일의 파일 권한을 변경 오류를 던졌다
sudo chmod -R +x odeint/
이번에는 허가가 거부되었지만 여기에서 볼 수있는 것처럼 400 줄의 오류가 발생했습니다. ->error log from terminal
어떻게 컴파일합니까? 문서 나 다른 곳의 odeint에 대한 설치 안내서는 없습니다
우선 : 파일이 존재합니까? – stefan
예, 필요한 모든 파일이 존재합니다 –
odeint가 우분투 repos의 부스트 버전과 호환되지 않을 수 있으며 대체 방법이 없지만 기본적으로 odeint를 제공하는 소스에서 최신 부스트를 설치할 수 있습니까? –