Tengo dificultades para compilar un programa C ++ que he escrito.
Este programa es muy simple y, que yo sepa, cumple con todas las reglas establecidas en el Estándar C ++. He leído dos veces la totalidad de ISO / IEC 14882: 2003 para estar seguro.
El programa es el siguiente:
Aquí está el resultado que recibí al intentar compilar este programa con 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
Consternado, probé g ++ 4.5.2, pero fue igualmente inútil:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Pensé que Clang (versión 3.0 troncal 127530) debe funcionar, ya que es muy elogiado por su conformidad con los estándares. Desafortunadamente, ni siquiera me dio uno de sus mensajes de error bonitos y destacados:
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 honesto, realmente no sé qué significan estos mensajes de error.
Muchos otros programas de C ++ tienen archivos de origen con una extensión .cpp , así que pensé que tal vez necesitaba cambiar el nombre de mi archivo. Cambié su nombre a helloworld.cpp , pero eso no ayudó. Creo que hay un error muy grave en Clang porque cuando intenté usarlo para compilar el programa renombrado, se volteó e imprimió "84 advertencias y 20 errores generados". e hizo que mi computadora emitiera un pitido mucho
¿Qué he hecho mal aquí? ¿Me he perdido alguna parte crítica del estándar C ++? ¿O los tres compiladores están realmente tan rotos que no pueden compilar este sencillo programa?