Estou com dificuldades para compilar um programa C ++ que escrevi.
Este programa é muito simples e, dentro do meu conhecimento, está em conformidade com todas as regras estabelecidas no Padrão C ++. Eu li toda a ISO / IEC 14882: 2003 duas vezes para ter certeza.
O programa é o seguinte:
Aqui está a saída que recebi ao tentar compilar este programa com o Visual C ++ 2010:
c:\dev>cl /nologo helloworld.png
cl : Command line warning D9024 : unrecognized source file type 'helloworld.png', object file assumed
helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172
Desanimado, tentei o g ++ 4.5.2, mas foi igualmente inútil:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Imaginei que o Clang (versão 3.0 tronco 127530) deve funcionar, pois é muito elogiado por sua conformidade com os padrões. Infelizmente, ele nem me deu uma de suas bonitas mensagens de erro destacadas:
c:\dev>clang++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
clang++: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
Para ser sincero, não sei realmente o que significa qualquer uma dessas mensagens de erro.
Muitos outros programas em C ++ têm arquivos de origem com uma extensão .cpp , então pensei que talvez fosse necessário renomear meu arquivo. Mudei o nome para helloworld.cpp , mas isso não ajudou. Acho que existe um bug muito sério no Clang porque, quando tentei usá-lo para compilar o programa renomeado, ele virou, imprimiu "84 avisos e 20 erros gerados". e fiz meu computador emitir um bipe muito!
O que eu fiz de errado aqui? Perdi uma parte crítica do padrão C ++? Ou todos os três compiladores são realmente tão quebrados que não podem compilar este programa simples?