在发送源代码时省略未使用的boost src文件的策略

Strategy to omit unused boost src files while shipping source code

本文关键字:boost src 文件 策略 未使用 源代码 时省      更新时间:2023-10-16

我正在使用

#include <boost/numeric/ublas/matrix.hpp>

事实上,这是我包含的唯一的提升文件。现在我想发布源代码,我希望不必包含boost_1_67_0的所有数百MB。

如何处理这个问题?

这只是您要添加到C++源代码的构建依赖项列表中的内容。

这种依赖可以通过版本控制系统在技术上与源代码分发"绑定"。例如,在Git中,您可以通过一个子模块链接到某些Boost库,该子模块链接到它们的官方Git镜像(截至本文撰写之时,github.com/boostorg(。在克隆存储库时,可以选择同时接收Boost库。

不过,考虑到Boost标头的大小,将其作为系统范围的库安装可能不那么复杂。像CMake这样的工具可以帮助您编写包含标头的逻辑,这样您就可以支持不同的标头位置。

当然,如果你想要创建一个完全隔离的源代码副本,那么将所有代码烘焙到一个巨大的头文件中的方法可能也是一种选择(但这应该不是必要的(。

您可以预处理所需的一个头文件,它将扩展其所有#includes:

c++ -E /usr/include/boost/numeric/ublas/matrix.hpp -o boost_numeric_ublas_matrix.hpp

请注意:这甚至会扩展您的系统头文件,因此它假设您的用户将在同一平台上构建。如果他们可能在不同的平台上编译,你应该简单地从你的项目中省略Boost代码,让用户自己以他们选择的任何方式安装它。