Linker Tools Error LNK1179


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at 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.

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() {  
void function1(void) {}  
void function2(void) {}