ZHCUAU3J January 2018 – March 2024
默认情况下,链接器会消除符号调试信息的重复条目。在编译 C 程序以进行调试时,通常会生成此类重复信息。例如:
-[ header.h ]-
typedef struct
{
<define some structure members>
} XYZ;
-[ f1.c ]-
#include "header.h"
...
-[ f2.c ]-
#include "header.h"
...
当编译这些文件以进行调试时,f1.c.obj 和 f2.c.obj 都有符号调试条目用于描述类型 XYZ。对于最终的输出文件,只需要一组这样的条目。链接器会自动消除重复条目。
如果希望链接器在目标文件中保留此类重复条目,请使用 --no_sym_merge 选项。使用 --no_sym_merge 选项可以使链接器运行得更快,并且在链接期间使用更少的主机存储器,但由于具有重复的调试信息,生成的可执行文件可能非常大。