在发送源代码时省略未使用的boost src文件的策略
Strategy to omit unused boost src files while shipping source code
我正在使用
#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代码,让用户自己以他们选择的任何方式安装它。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- boost::进程间消息队列引发错误
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- cmake如何在fedora工作站中找到boost静态库包
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Boost Graph Library,修复节点大小
- 什么是"#include <boost/functional/hash.hpp> "?
- 基于boost的程序的静态链接——zlib问题
- C++:如何在CLion IDE中安装Boost
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何在boost beast http请求中设置http头
- Boost Spirit,获取迭代器内部语义动作
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 使用Boost Interprocess创建托管共享内存需要很长时间
- Boost::posix_time::ptime舍入到给定的分钟数
- 在发送源代码时省略未使用的boost src文件的策略