问题描述
我需要使用跨平台库来控制子进程。我发现的唯一成熟的推荐库是 boost::process,但我是 Boost 的新手。
我只想使用这个库,但我不确定我该怎么做以及是否有其他依赖项,即我还需要编译另一个库还是headers only?我的最终目标是尽可能少地使用 Boost。我该怎么办?
解决方法
您查看过 BCP utility 吗?从概览部分:
bcp 实用程序是一种用于提取 Boost 子集的工具,对于希望将其库与 Boost 分开分发的 Boost 作者以及希望随其应用程序分发 Boost 子集的 Boost 用户非常有用。
bcp 还可以报告您的代码依赖于 Boost 的哪些部分,以及这些依赖项使用了哪些许可证。
,Boost Process 仅包含头文件,因此您不必单独编译它。我检查了一些源文件,它们似乎使用了其他一些 Boost 标头,因此您应该下载整个文件。
如果您希望您的客户不必下载 Boost,您可以检查需要哪些文件并将这些文件与您的库一起分发。
,还是headers only?
您可以通过阅读非标头的 Boost 库列表来发现这一点,即需要在链接文档中单独编译。 Boost.Process 不在需要单独编译的库列表中,因此它只是头文件。
不用下载所有的boost框架就可以使用boost进程吗?
不是很实际。理论上,您只需要头文件库的头文件,但只检出目录有点棘手。
我找不到如何以及是否需要编译它所依赖的另一个库
根据链接的文档,您不需要这样做。