分发Boost Library?

iQ.*_*iQ. 9 c++ boost distribution

我是使用boost的新手,我似乎无法在使用boost时如何分发应用程序的任何地方找到文档?

许多库都是共享库,我不希望我的用户安装了boost,我只使用一个库(regex)所以有一种简单的方法可以将regex库与我的应用程序打包在一起,而无需使用静态编译版?

ebo*_*ebo 8

Linux的

对于二进制分发,我建议使用分发的包管理,它应该处理任何依赖关系.一些商业应用程序只使用二进制blob,你需要自己安装一个版本的boost.

在Linux上查找库有点困难.如果它们在编译时链接(而不是在运行时使用dlopen加载),它不会自动从当前目录加载共享对象.

您必须使用LD_LIBRARY_PATH env变量或使用rpath.两者都有它的缺点.

视窗

没有办法包括dll.通常的做法是将所有内容放入目录并将其压缩.

要从源代码构建,无论如何都需要boost源,因此不需要包含库.

无论如何,boost中的大多数库都是标题,regexp不是其中之一.为此模块包含dll应该足够了.在Linux中,您可以使用以下命令检查编译二进制文件的共享库:

ldd binary
Run Code Online (Sandbox Code Playgroud)

  • 在 Linux 上,确实可以依赖包管理器,但是 **如果 Linux 发行版带有过时的 Boost 版本** 并且您需要更新的功能怎么办?在这种情况下,分发部分 Boost(而不是依赖包管理器)的问题是有意义的。 (2认同)