0

我需要使用跨平台库来控制子进程。我发现的唯一成熟的推荐库是boost::process,但我是 Boost 的新手。

我只想使用这个库,但我不确定我该怎么做以及是否有其他依赖项,即我是否还需要编译另一个库或者它只是标题?我的最终目标是尽可能少地使用 Boost。我应该怎么做?

4

3 回答 3

3

您是否查看过BCP 实用程序?从概述部分:

bcp 实用程序是一种用于提取 Boost 子集的工具,它对于希望将其库与 Boost 分开分发的 Boost 作者以及希望将 Boost 子集与他们的应用程序一起分发的 Boost 用户很有用。

bcp 还可以报告您的代码依赖于 Boost 的哪些部分,以及这些依赖项使用了哪些许可证。

于 2021-02-03T08:44:46.493 回答
1

Boost Process 仅是标头,因此您不必单独编译它。我检查了一些源文件,它们似乎使用了其他一些 Boost 头文件,所以你应该下载整个东西。

如果您希望您的客户不必下载 Boost,您可以检查需要哪些文件并将这些文件与您的库一起分发。

于 2021-02-03T08:22:53.337 回答
1

还是只是标题

您可以通过阅读不仅是标头的 Boost 库列表(需要在链接文档中单独编译)来找到这一点。Boost.Process 不在需要单独编译的库列表中,因此它只是头文件。

使用boost过程不下载所有boost框架可以吗?

不是很实际。理论上,您只需要标头库的标头,但仅检查一个目录有点棘手。

我找不到如何以及是否需要编译它所依赖的另一个库

根据链接的文档,您不需要。

于 2021-02-03T08:25:21.857 回答