gpt4 book ai didi

c++ - 使用 boost::serialization 大大增加了二进制大小

转载 作者:IT王子 更新时间:2023-10-29 01:20:11 25 4
gpt4 key购买 nike

我在我的应用程序中使用相当复杂的数据结构(主要使用 STL 容器),并使用 Boost (v1.34) 将它们序列化。

每当我使用调试符号 (gcc -g) 进行编译时,生成的可执行文件都会变得很大——大约 25 MB。剥离所有调试符号可将大小减小到约 3 MB。

我试图确定大小增加的原因,似乎序列化方法是原因。特别是,调用序列化的模块的目标文件(代码如“oarchive << myObject”)很大,注释掉序列化部分会显着减少大小。

有没有可能阻止这些符号的产生,或者有选择地去除它们?
剥离所有符号不是一种选择,因为我需要为我自己的代码调试符号。

最佳答案

  1. 将带有序列化调用的代码放到单独的模块中,将它们编译成大目标文件。
  2. 对它们使用 strip --strip-debug 以仅删除这个大的调试符号(稍后您肯定需要它来调试序列化库中的崩溃:)
  3. 获利! 将剥离的包装器和未剥离的其他模块链接在一起。

关于c++ - 使用 boost::serialization 大大增加了二进制大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6060208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com