【发布时间】:2013-08-12 09:46:22
【问题描述】:
我在生成非常大的目标文件时遇到问题。我们正在使用 VxWorks 5.5.1,但我们有可用的 GCC 4.1.2。
我们的模块大小约为 6.2MB,我们正在寻找减小该大小的方法。该问题似乎主要是由于过度使用模板引起的。当使用nm 转储文件中的符号时,我得到一个 1.8MB 的文本文件。这告诉我几乎 ⅓ 的文件只是名称。有什么办法可以减小文件大小?
以下方法无效:
-
--strip-all似乎没有效果 - 输出与使用--strip-debug相同 - 我不能使用
--gc-sections,因为该平台不支持它(该选项被忽略)
我知道 VxWorks 在加载时链接代码,但它所链接的只是 C++ 运行时库,我不希望将任何符号添加到全局符号表中,所以应该有一种方法可以去掉这些信息,对吧?
作为参考,这是我的链接器版本:
i386-wrs-vxworks-ld.exe --version
>>> GNU ld (Wind River VxWorks G++ DWARF-EH 4.1-131) 2.17.50.20070509
>>> SPR fixes: cq103489 cq111170 cq116027 cq116652 cq118878 cq125145
和我的编译器版本:
i386-wrs-vxworks-g++.exe --version
>>> i386-wrs-vxworks-g++.exe (GCC) 4.1.2
【问题讨论】:
-
使用
-Os优化标志? -
对不起,我应该提到我们已经这样做了,它将输出大小从 8.5MB 减少到 6.2MB。