我在生成非常大的目标文件时遇到了麻烦。我们正在使用 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