这可能是特定于编译器的,在这种情况下,我使用的是IAR EWARM 5.50编译器(STM32芯片的固件开发)。
我们的项目包含一堆我们先编译的C代码库,然后是主应用程序,它编译它的C代码然后链接到这些库中(非常标准的东西)。
但是,如果我使用十六进制编辑器并打开生成的任何库对象文件或最终的应用程序二进制文件,我会在输出二进制文件中找到一大堆纯文本引用到C文件的文件路径编译。 (例如,我看到“C:\ Development \ trunk \ Common \ Encryption \ SHA_1.c”)
有两个问题:
对此有何想法?我已经尝试了编译器中的所有开关,我可以想到“删除调试信息”等,但这些路径仍在那里。
答案 0 :(得分:5)
“已添加命令行选项--no_path_in_file_macros。它会删除路径,只留下符号文件和 BASE_FILE 的文件名。” 如果是IAR,它在发行说明中定义。
http://supp.iar.com/FilesPublic/UPDINFO/005832/arm/doc/infocenter/iccarm_history.ENU.html
或者您可以查找文件和 BASE_FILE 宏并删除它,您不想使用该标记。