Linker Tools Error LNK1179
invalid or corrupt file: duplicate COMDAT 'filename'
An object module contains two or more COMDATs with the same name.
This error can be caused by using /H, which limits the length of external names, and /Gy, which packages functions in COMDATs.
Example
In the following code, function1
and function2
are identical in the first eight characters. Compiling with /Gy and /H8 produces a link error.
void function1(void);
void function2(void);
int main() {
function1();
function2();
}
void function1(void) {}
void function2(void) {}