提高足迹

问题描述

我想通过考虑跨平台应用程序,使用boost lib进行boost进程间,Logger,JSON和XML解析。我看到boost头的总大小约为126 MB,而构建boost库的大小约为156 MB。总计(126 + 156 = 282 MB)。我觉得这对我的系统来说有点累。确实增强了选择性组件的支持,因此我只需要构建用于进程间,JSON和XML解析的库。 换句话说,如何减小库的大小?

解决方法

在实践中,我并未发现使用您命名的这些库会产生太大的二进制文件。 (免责声明:我在生产中不使用Boost Log,所以在那里我可能会感到惊讶)。

更重要的是:请勿将Boost用于您的JSON或XML需求。您可以将其用于属性树需求,但Boost不具有XML或JSON支持。由于您对问题的措辞方式似乎对我来说就像您不知道属性树对JSON / XML施加的严格限制(例如,Parsing XML's with Boost PTree w/o tags)。

除了Boost Log之外,您提到的大多数库都是(或可以是)标头。因此,您只需要Boost Log +依赖项。您甚至可以配置一些选项来减小大小:https://www.boost.org/doc/libs/1_73_0/libs/log/doc/html/log/installation/config.html。我认为建议的示例

bjam --with-log variant=release define=BOOST_LOG_WITHOUT_EVENT_LOG define=BOOST_USE_WINAPI_VERSION=0x0600 stage

将已经跳过所有不需要的非仅头文件的库。当然,请确保从干净的登台目录开始以查看结果。

最后可能会减小磁盘上标头的大小,您可以尝试使用BCP来实现这一点,因为该原因。我不会打扰,因为这是多余的工作和复杂性,没有好处,IMO。

一些提示:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...