我正在阅读文档,发现它很模糊:
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/