c++ - 使用 Boost 库分发?

标签 c++ boost distribution

我对使用 boost 很陌生,我似乎无法在任何地方找到有关如何在使用 boost 时分发应用程序的文档?

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

最佳答案

Linux

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

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

您必须使用 LD_LIBRARY_PATH 环境变量或使用 rpath .两者都有其缺点。

window

没有办法解决包含 dll 的问题。通常的做法是将所有内容放入一个目录并压缩。

两者

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

boost 中的大多数库无论如何都只是 header ,regexp 不是其中之一。包含此模块的 dll 应该就足够了。 在 Linux 中,您可以检查您的二进制文件是根据哪些共享库编译的:

ldd binary

关于c++ - 使用 Boost 库分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412080/

相关文章:

julia - 在 Julia 中估计概率分布并从中采样

c++ - 使用 char* 存储正确的文件路径

c++ - C++对大小为N的子 vector 进行迭代

c++ - 成员函数作为 g_signal_connect 的回调函数

c++ - 我的程序泄漏了 boost::shared_ptr 拥有的资源

c++ - 如何从开始在对象的成员函数中执行的 c++ boost thread_group 创建新线程?

c++ - 在 C++ 中传递具有多个条目的结构

c++ - 为什么 boost::timer 的结果如此奇怪?

c++ - 使用 boost 所有 linux 发行版编译 C++

c++ - 二项式随机数生成