无法编译 ODEINT 包中的示例
Posted
技术标签:
【中文标题】无法编译 ODEINT 包中的示例【英文标题】:unable to compile examples in ODEINT package 【发布时间】:2012-10-15 12:38:56 【问题描述】:我正在尝试解决 C++ 中的一组耦合 ODE,我决定尝试 odeint (available here),因为我已经阅读了很多关于它的好东西。但是,我正在编译包中包含的示例。情况如下:
到目前为止,我只下载了包并解压了它。我在 Windows XP 上运行 Visual C++ 6,并且正在编译示例“simple1d”。我收到错误消息:“无法打开包含文件:'boost/config.hpp':没有这样的文件或目录”。
我不清楚我错过了什么。我需要完整的 boost 库来完成这项工作吗?我的印象是 ODEINT 是一个“独立”包。
【问题讨论】:
抱歉,odeint 不是独立的。这取决于提升。 【参考方案1】:您的错误表明编译器找不到 boost 库。您应该从 boost.org 下载它们并将它们添加到您的标题路径中。
【讨论】:
现在我正在链接到 ODEINT 和 BOOST,然后我收到 10 个错误和 3192 个警告 (?!)。其中一个错误是(例如):“c:\boost_1_51_0\boost\utility\swap.hpp(37) : error C2265: '你是从哪里下载并解压包的?包主页说它是一个只有头文件的包,所以你只需要让Visual找到头文件。我有一段时间没有使用 Visual,但是快速搜索一下“Visual 6 添加标题路径”之类的内容应该是一个不错的起点。看看Where does Visual Studio look for C++ header files?。
引用this page:
在 Visual Studio 中,转到 项目设置 对话框。我们要更改调试和发布版本的设置,因此在 Settings For 字段下,选择“所有配置”。在 C/C++ 选项卡下,选择 Preprocessor 选项。
包 tarball 有一个名为 boost 的目录:您想将该目录的路径添加到 其他包含目录 框中,然后在代码中添加 #include <boost/numeric/odeint/config.hpp>
。
更新
看来,您已经正确安装了 odeint 头文件:文件 boost/numeric/odeint/config.hpp 有一行 #include <boost/config.hpp>
,这就是 visual 必须抱怨的;所以我猜这个包不是独立的。它必须需要安装其他 boost 头文件。我在包主页或包 tarball 中都找不到任何提及任何依赖项的内容,所以我想你也应该尝试安装 boost。下载version 1.51.0 here和this is the windows documentation。
【讨论】:
我尝试了您的建议,但没有帮助。我仍然收到相同的错误消息。【参考方案3】:您必须从 http://headmyshoulder.github.io/odeint-v2/downloads.html 下载 odeint,从 http://www.boost.org/users/history/version_1_51_0.html 下载 Boost c++ 库。 如果您使用代码块,请右键单击您的项目,选择构建选项,选择搜索目录并添加两个引用,一个用于 odeint,一个用于 boost。
【讨论】:
以上是关于无法编译 ODEINT 包中的示例的主要内容,如果未能解决你的问题,请参考以下文章