如何包含 Boost 库?

How do I include Boost libraries?

我正在尝试将 Boost 库合并到我的程序中,特别是 lexical_castgeometry。我使用 #include"boost/boost/geometry.hpp"#include"boost/boost/lexical_cast/lexical_cast_old.hpp" 包括它们。

当我 运行 代码时,我得到了致命错误 "Cannot open include file: 'boost/geometry/geometry.hpp': No such file or directory",这导致我进入 Boost 库中的另一个 .hpp 文件,该文件包含另一个库,但使用 #include<...> 而不是#include"...".

当我将它替换为 "..." 时,这个错误出现了,但它被替换为使用 #include<...> 而不是 #include"..." 包含的下一个库。

我觉得这可能会让我陷入困境,用 #include"..." 替换几乎所有 #include<...> 的实例,这需要很长时间。是否有我可以更改的设置或我可以包含的一段代码来解决这个问题?

或者我可以删除所有其他不必要的库并更改我需要的库(我知道,这仍然会很多,因为它们似乎相互依赖)。

我有 Boost 库版本 1.58.0。

例如:

  1. Boost 库 - c:\boost\boost_1_58_0(运行 booststrap.batb2 作为管理员)。
  2. 将字符串 $(THIRD_PARTY)\boost\boost_1_58_0\include$(THIRD_PARTY)\boost\boost_1_58_0\ 添加到 VC++ 目录包含目录

在 Visual Studio 2012 中,right-click 在您的项目上 select "Properties"。

在属性对话框中,select "Configuration Properties" 然后 "VC++ Directories"。

您需要将 Boost 包含路径添加到 "Include Directories" 列表。

如果您正在使用所有 header-only 库,那么您就完成了。否则,您需要将 Boost 库路径添加到 "Library Directories".

首先,您应该了解 #include "filepath"#include <filepath> here 之间的区别。

就个人而言,我正在使用 Visual Studio 的 Boost,如下所示:

  1. 转到项目属性C/C++常规其他包含目录,并添加到 boost 库根目录的路径(在我的例子中是 C:\Program Files (x86)\Boost_1_53)。
  2. 在您的源代码中包含一个 .hpp 文件,例如 #include <boost/lexical_cast/lexical_cast_old.hpp>

如果您使用的是非 headers-only 库,您还应该在 项目属性 链接器 中添加 Boost 库的路径→ 常规其他库目录.