invalid or corrupt file: duplicate comdat comdat
An object module contained two or more COMDATs with the same name.
One possible cause is if you use the /H option with /Gy. The /H option limits the length of external names, and the /Gy option packages functions in COMDATs.
For example, if you compile the following with /Gy and /H8, you will get error LNK1179 since the object module will contain two COMDATs of the same name (function1
and function2
are unique at nine characters):
void function1(void);
void function2(void);
void main(void) {
function1();
function2();
}
void function1(void) {}
void function2(void) {}