Я использую Ubuntu 12.04, и в /usr/include уже есть некоторые файлы повышения. я сделал
sudo apt-get install libboost-all-dev
и это тоже установило много файлов. Я не хочу удалять это ускорение и устанавливать из исходного кода, так как несколько других пакетов зависят от версии из репозиториев Ubuntu. Это пример кода, который я хочу запустить: -
#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
возникла ошибка /usr/include/boost/numeric/odeint.hpp permission denied
Поэтому я рекурсивно изменил права доступа ко всем файлам odeint, используя
sudo chmod -R +x odeint/
На этот раз он не сообщил об отказе в доступе, а выдал 400 строк ошибок, как можно увидеть здесь -> журнал ошибок с терминала
Как мне его скомпилировать? В документации или где-либо еще нет руководств по установке odeint.
/usr/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp:307:42: error: ‘bind’ is not a member of ‘boost::numeric::odeint::detail’
. Убедитесь, что это на самом деле первый. Вы можете скомпилировать с-Wfatal-errors
, чтобы прервать при первой ошибке. - person stefan   schedule 09.11.2013-std=c++0x
или-std=c++11
. - person stefan   schedule 09.11.2013g++ -v
. - person stefan   schedule 09.11.2013test.cpp: In function ‘int main()’: test.cpp:30:5: error: ‘stepper_euler’ was not declared in this scope compilation terminated due to -Wfatal-errors.
- person   schedule 09.11.2013stepper_euler
. Найдите его и включите соответствующий заголовок. - person stefan   schedule 09.11.2013