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

时间:2018-07-14 10:07:52

标签: c++ c++11 matrix boost

我正在使用

.ui-panel-inner { padding: 0 !important; }
.ui-panel-inner .ui-collapsible-content { padding: 0 !important; }
.ui-panel-inner .ui-listview { margin: 0 !important; }
.ui-panel-inner .ui-listview > .ui-li-static { padding: 0 !important; }
.ui-panel-inner .ui-listview > li h3 { margin: 0 !important; }

实际上,这是我包含的唯一增强文件。现在,我想提供源代码,但我希望不必包含所有数百MB的.ui-content { text-align:center; } .ui-footer .ui-title { padding: 0 !important; }

如何处理此问题?

2 个答案:

答案 0 :(得分:1)

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

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

请注意:这甚至会扩展您的系统头文件,因此假定您的用户将在同一平台上构建。如果他们可以在不同的平台上进行编译,则只需在项目中省略Boost代码,然后让用户以他们选择的任何方式自行安装。

答案 1 :(得分:1)

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

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

但是,考虑到Boost头的大小,将它们安装为系统范围的库,可能并不那么复杂。像CMake这样的工具可以帮助您编写包含头文件的逻辑,以便您可以支持不同的头文件位置。

当然,如果您要创建的是源代码的完全隔离的副本,则也可以选择将所有代码烘焙到一个庞大的头文件中的方法(但这不是必须的)。 / p>