工具/软件:TI C/C++编译器
尊敬的 TI:
我们使用 IAR for MSP430来编译和生成静态库。 源文件是算法的 c 代码(即实际独立于平台)、只是有点大、但生成的库应该小至30K 字节左右、因为我们为许多其他平台生成了库。 但是、当我们使用 IAR for MSP430生成库时、它会生成近600K 字节的库。 太大了!
我们尝试使用文本编辑等编辑工具打开生成的.R43库、并发现它包含大量以下可读编译信息、如下面所示附加到"real"库中、这是库如此大的原因:
数字超出范围。 有效范围为-32768 (-0x8000)至65535 (0xFFFF)。
文件:***** \**** \***** \**.c,行:11126
来源:调用#?Subroutine123s*****
在生成的.R43库中重复了数百行上述可读信息(仅行号不同除外)、这会导致库太大。 同时,它还提供了一种破解库的可能性,因为它包含两个可读的源代码信息! 实际上、上述编译信息已由 icc430.exe 添加到生成的.R43目标文件中 、并由 xar.exe 保留到.R43库中。
虽然它很大、但如果我们将它添加到 Out 项目中、库没有问题、并且可以正常工作。 也就是说、将生成的文件链接到其他工程中没有问题。
如果我们使用编辑工具从库中删除上述信息的可读性并保留这些信息,则大小将减少到30KB,但库无法链接到我们的库,并且编译会显示库“不是 UBROF 文件”, 这意味着我们不能仅使用编辑工具就从库中删除上述无意义编译信息。
那么、编译选项是如何以及可能是什么、以便我们可以从生成的.R43库中排除这些编译信息?
谢谢!