链接器工具错误 LNK1179

无效或损坏的文件:重复的 COMDAT“文件名”

对象模块包含两个或多个具有相同名称的 COMDA。

此错误可能是因为使用了 /H,它限制外部名称的长度,以及 /Gy,它在 COMDAT 中打包函数。

示例

在以下代码中,function1function2 的前八个字符相同。 使用 /Gy/H8 进行编译会产生链接错误。

void function1(void);
void function2(void);

int main() {
    function1();
    function2();
}

void function1(void) {}
void function2(void) {}