c++ - 将 header .hpp 文件手动复制到我的 project_root/boost 库中是否正确?

标签 c++ eclipse boost

我正在阅读文档,发现它很模糊:

To compile anything in Boost, you need a directory containing the boost/ subdirectory in your #include path.

Since all of Boost's header files have the .hpp extension, and live in the boost/ subdirectory of the boost root, your Boost #include directives will look like:

#include <boost/whatever.hpp>

or

#include "boost/whatever.hpp"

depending on your preference regarding the use of angle bracket includes.

我是否应该始终在我的项目根目录中创建一个名为“boost”的子目录,然后手动将我需要的每个 .hpp 文件从我的 boost 安装/头目录复制到 project_root/boost 目录?

我还可以看到告诉 Eclipse 自动扫描我的 boost root 安装/包含目录以查找 header ,从而避免手动复制。此外,我可以看到将 boost root 安装/include 目录软链接(soft link)到项目 boost 文件夹中,以便包含所有内容,而无需进行单个手动复制。

我看到的一个区别是在我的项目中包含 boost 头文件在我的项目中不包含它们并在外部引用它们 em>

我不确定这些策略中哪一个是正确的。此处的最佳做法是什么?

最佳答案

小型开发项目的正确选择可能是您在此处建议的选项:

“我还可以看到告诉 Eclipse 自动扫描我的 boost root 安装/包含目录以查找 header ,从而避免手动复制。” (具体来说,将 boost 安装的包含目录添加到编译器/Eclipse 搜索路径。)

这就是 boost 文档的意思,在您的#include 路径中有一个包含 boost/的目录。

对于小型单个项目,如果您的 boost 安装很少更改,您真的不想为每个项目创建手动构建的 boost 链接,除非这是您更广泛的跨项目构建策略的一部分。我曾在组织中工作过,那里这样做是有充分理由的,基本上是为了让您能够通过切换一些符号链接(symbolic link)来设置指向不同版本的 boost(或其他第三方库)的不同构建实例,而不是弄乱 make 依赖项和路径。

因此,如果您想要那种程度的灵 active ,那么在您的项目中设置指向 boost 的 include、lib 等的符号链接(symbolic link)可能是一种选择。

但是,每次都手动将 boost 头文件复制到您的项目中并不是一个好的方法。

关于c++ - 将 header .hpp 文件手动复制到我的 project_root/boost 库中是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23404016/

相关文章:

c++ - 将 boost::shared_ptr 与重载下标运算符 ([]) 的类一起使用

c++ - 在另一个 VS 项目中引用函数模板的显式实例化时出现 LNK2019 错误

枚举类中的 C++ 运算符重载

java - 使用 Eclipse 将 HTML 嵌入到 JAR 中

c++ - 转义 C++ 字符串

c++ - 是否可以通过 clang 和 gcc 支持构建 boost?

c++ - gpu::blur 函数需要更多时间

尝试创建标记 vector 时出现 C++ 错误

Java 错误 - 类型 List<E> 不可见 - 类型 Map<K,V> 不可见

c - 对已定义函数的 undefined reference