我对使用 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/