9

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

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

4

1 回答 1

8

Linux

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

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

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

视窗

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

两个都

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

boost 中的大多数库只是标题,regexp 不是其中之一。包含此模块的 dll 就足够了。在 Linux 中,您可以使用以下命令检查您的二进制文件是针对哪些共享库编译的:

ldd binary
于 2009-09-11T17:33:38.673 回答