Erro das ferramentas de vinculador LNK1179
arquivo inválido ou corrompido: 'filename' de COMDAT duplicado
Um módulo de objeto contém dois ou mais COMDATs com o mesmo nome.
Esse erro pode ser causado pelo uso de /H, que limita o comprimento de nomes externos, e /Gy, que empacota funções em COMDATs.
Exemplo
No código a seguir, function1
e function2
são idênticos nos oito primeiros caracteres. A compilação com /Gy e /H8 produz um erro de link.
void function1(void);
void function2(void);
int main() {
function1();
function2();
}
void function1(void) {}
void function2(void) {}