我对boost的使用非常陌生,似乎在任何地方都找不到关于如何在使用boost时分发应用程序的文档?
许多库都是共享库,我不希望我的用户安装boost,我只使用一个库( regex ),所以有没有一种简单的方法可以将regex库与我的应用程序打包在一起,而无需使用静态版本进行编译?
发布于 2009-09-11 09:33:39
Linux
对于二进制发行版,我建议使用发行版的包管理,它应该会处理任何依赖项。一些商业应用只使用二进制blob,你需要自己安装一个版本的boost。
在linux上查找库有点困难。如果共享对象是在编译时链接的,它不会自动从当前目录加载共享对象(而不是在运行时使用dlopen加载)。
您必须使用LD_LIBRARY_PATH环境变量或使用rpath。两者都有它的缺点。
视窗
没有办法将dlls包括在内。通常的方法是将所有内容放到一个目录中,然后将其压缩。
两者都有
要从源代码构建,无论如何都需要boost源代码,所以不需要包含库。
boost中的大多数库都只是头文件,regexp不是其中之一。包含此模块的dll就足够了。在Linux中,您可以使用以下命令检查您的二进制文件是根据哪些共享库编译的:
ldd binary
https://stackoverflow.com/questions/1412080
复制