这可能是特定于编译器的,在这种情况下,我使用的是 IAR EWARM 5.50 编译器(STM32 芯片的固件开发)。
我们的项目由我们首先编译的一堆 C 代码库组成,然后是编译其 C 代码然后链接到这些库中的主应用程序(非常标准的东西)。
但是,如果我使用十六进制编辑器并打开任何生成的库对象文件或最终的应用程序二进制文件,我会在输出二进制文件中找到一大堆纯文本引用,指向已编译的 C 文件的文件路径。(例如,我看到“C:\Development\trunk\Common\Encryption\SHA_1.c”)
这有两个问题:
- 我们真的不希望文件路径易于阅读,因为这表明我们的设计有些什么
- 如果您的 C 文件位于较长的子目录中,则二进制文件的大小会增加(二进制文件包含完整路径,而不仅仅是名称)...当我们处理数量有限的固件时,这一点尤其重要代码空间(256KB)。
对此有什么想法吗?我已经尝试了编译器中我能想到的“删除调试信息”等所有开关,但这些路径仍然存在。