C++ 如何在linux中安装仅标头(odeint)库?

C++ 如何在linux中安装仅标头(odeint)库?,c++,linux,boost,g++,odeint,C++,Linux,Boost,G++,Odeint,我在Debian Sqeeze下使用g++4.4,并且安装了boost。我能够运行带有标题的简单boost矩阵: #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> 但是,这是不可能的,因为我的/usr/include/boost/numeric文件夹只列出了 conversion interval interval.hpp ublas 如何安装odein

我在Debian Sqeeze下使用g++4.4,并且安装了boost。我能够运行带有标题的简单boost矩阵:

#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
但是,这是不可能的,因为我的/usr/include/boost/numeric文件夹只列出了

conversion  interval  interval.hpp  ublas
如何安装odeint

odeint是一个只有头的库,不需要针对预编译代码的链接。我已下载并将odeint文件夹和odeint.hpp文件复制到我的/usr/include/boost/numeric文件夹中。但是,它不起作用。编译时,我得到一个错误:

error: boost/range/algorithm/copy.hpp: No such file

我已删除通过安装的boost库

apt-get install libboost1.42-dev

其中不包含odeint。然后我安装了,它已经包含了odeint。现在我可以运行odeint程序,例如..

是否安装了boost::range?它可以找到odeint头,但其中一个包含了范围库中不存在的头。@deong:Thanx,boost/range/algorithm丢失。可能是因为我将boost安装为debian包而不是。现在我安装了boost_1_54_0.tar.bz2,所有功能都可以正常工作,因为此发行版中包含了odeint。现在您可能有两个版本,如果无意中将它们混合使用,则很可能会出现ODR冲突。@Igor R。我已从/usr/include/中删除了旧的boost目录。仅仅删除旧的1.42 boost版本还不够吗?对不起,也许我误解了你的意思。如果您完全删除了头文件和二进制文件,那么就可以了。事实上,拥有多个Boost版本也是非常合理的,但是你应该确保你永远不会混合使用它们。
apt-get install libboost1.42-dev