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?
fuente
Originalmente de Overv @ reddit .
fuente
Intenta de esta manera:
fuente
Tu
<
y>
,(
y)
,{
y}
no parecen coincidir muy bien; Intenta dibujarlos mejor.fuente
}
quien está causando el problema. Trate de concentrarse en la coincidencia de que con el{
Puedes probar el siguiente script de Python. Tenga en cuenta que necesita instalar PIL y pytesser .
Para usarlo, haz:
fuente
Olvidó usar Comic Sans como fuente, por eso es un error.
fuente
No puedo ver una nueva línea después de ese último aparato ortopédico.
Como sabe: "Si un archivo fuente que no está vacío no termina en un carácter de nueva línea, ... el comportamiento no está definido".
fuente
Este programa es válido, no puedo encontrar errores.
Supongo que tienes un virus en tu máquina. Sería mejor si reformatea su unidad y reinstala el sistema operativo.
Háganos saber cómo funciona, o si necesita ayuda con la reinstalación.
Odio los virus
fuente
He descubierto que ayuda no escribir mi código en el cristal de mi monitor con un marcador mágico, aunque se ve bien cuando es realmente negro. La pantalla se llena demasiado rápido y luego las personas que me dan un monitor limpio me llaman cada semana.
Un par de mis empleados (soy un gerente) están contribuyendo para comprarme una de esas computadoras de almohadilla roja con las perillas. Dijeron que no necesitaré marcadores y que puedo limpiar la pantalla yo mismo cuando esté llena, pero tengo que tener cuidado de sacudirla. Supuse que es delicado de esa manera.
Por eso contrato a las personas inteligentes.
fuente
File format not recognized
Necesita formatear correctamente su archivo. Eso significa usar los colores y fuentes correctos para su código. Vea las documentaciones específicas para cada compilador ya que estos colores varían entre compiladores;)fuente
Olvidaste el preprocesador. Prueba esto:
fuente
¿Escribiste a mano el programa y luego lo escaneaste en la computadora? Eso es lo que implica "helloworld.png". Si ese es el caso, debe tener en cuenta que el estándar C ++ (incluso en su última edición) no requiere la presencia de reconocimiento óptico de caracteres, y desafortunadamente no está incluido como una característica opcional en ningún compilador actual.
Es posible que desee considerar la transposición de los gráficos a un formato de texto. Se puede usar cualquier editor de texto sin formato; El uso de un procesador de texto, si bien es capaz de generar una impresión bonita, probablemente dará como resultado el mismo error que se obtiene al intentar escanear.
Si eres realmente aventurero, puedes intentar escribir tu código en un procesador de textos. Imprima, preferiblemente usando una fuente como OCR-A . Luego, tome su copia impresa y vuelva a escanearla. La exploración puede ejecutarse a través de un paquete de OCR de terceros para generar un formulario de texto. El formulario de texto se puede compilar utilizando uno de los muchos compiladores estándar.
Sin embargo, tenga cuidado con el gran costo del papel en el que incurrirá durante la fase de depuración.
fuente
Dibuje la inclusión a continuación para compilarla:
Escuché que puede compilar errores de sintaxis ...
fuente
#include <JonSkeet>
.Desafortunadamente, seleccionó tres compiladores que admiten múltiples lenguajes, no solo C ++. Todos tienen que adivinar el lenguaje de programación que usaste. Como probablemente ya sepa, el formato PNG es adecuado para todos los lenguajes de programación, no solo C ++.
Por lo general, el compilador puede descubrir el lenguaje en sí. Por ejemplo, si el PNG obviamente se dibuja con crayones, el compilador sabrá que contiene Visual Basic. Si parece que está dibujado con un lápiz mecánico, es fácil reconocer al ingeniero en el trabajo, escribiendo código FORTRAN.
Este segundo paso tampoco ayuda al compilador, en este caso. C y C ++ simplemente se ven muy similares, hasta el
#include
. Por lo tanto, debe ayudar al compilador a decidir qué idioma es realmente. Ahora, podría usar medios no estándar. Por ejemplo, el compilador de Visual Studio acepta los argumentos de línea de comandos / TC y / TP , o puede usar la opción "Compilar como: C ++" en el archivo del proyecto. GCC y CLang tienen sus propios mecanismos, que no sé.Por lo tanto, recomendaría usar el método estándar en su lugar para decirle a su compilador que el siguiente código está en C ++. Como ya descubrió, los compiladores de C ++ son muy exigentes con lo que aceptan. Por lo tanto, la forma estándar de identificar C ++ es mediante la intimidación que los programadores agregan a su código C ++. Por ejemplo, la siguiente línea le aclarará a su compilador que lo que sigue es C ++ (y será mejor que lo compile sin quejas).
fuente
#pragma
era la forma correcta de "enviar un mensaje" al compilador?Prueba este:
fuente
endl
(L) noend1
(uno). ¡Pero +1 bien hecho!¿Está su compilador configurado en modo experto? Si es así, no debería compilarse. Los compiladores modernos están cansados de "¡Hola Mundo!"
fuente
OCR dice:
Lo cual es bastante bueno, para ser justos.
fuente
Obviamente, debe formatear su disco duro.
Realmente, estos errores no son tan difíciles de leer.
fuente
Convertí su programa de PNG a ASCII, pero aún no se compila. Para su información, intenté con un ancho de línea de 100 y 250 caracteres, pero ambos arrojaron resultados comparables.
fuente
El primer problema es que está intentando devolver un valor incorrecto al final de la función principal. El estándar C ++ dicta que el tipo de retorno de main () es int, pero en su lugar está intentando devolver el conjunto vacío.
El otro problema es, al menos con g ++, que el compilador deduce el lenguaje utilizado del sufijo del archivo. De g ++ (1):
La solución de estos debería dejarlo con una aplicación Hello World completamente funcional, como se puede ver en la demostración aquí .
fuente
Su fuente apesta, ¿cómo debería un analizador leer eso? Toma un curso de caligrafía.
fuente
Sus compiladores esperan ASCII , pero ese programa obviamente está escrito usando EBCDIC .
fuente
Estás intentando compilar una imagen.
Escriba lo que ha escrito en un documento llamado main.cpp, ejecute ese archivo a través de su compilador, luego ejecute el archivo de salida.
fuente
Debe especificar la precisión de su salida precedida por dos puntos inmediatamente antes de la llave de cierre final . Como la salida no es numérica, la precisión es cero, por lo que necesita esto:
: 0}
fuente
agregar:
justo después incluyen: P: D
fuente
std
todo el tiempo. Me recuerda que no consiga uno.Parece que su compilador no admite archivos con tal codificación hmm ... Intenta convertirlo a ASCII.
fuente
El problema radica en la definición de sintaxis, ¡intente usar una regla y brújulas para una descripción más clásica!
Salud,
fuente
Intente cambiar la interfaz de entrada. C ++ espera que se conecte un teclado a su computadora, no un escáner. Puede haber problemas de conflicto de periféricos aquí. No verifiqué en el estándar ISO si la interfaz de entrada del teclado es obligatoria, pero eso es cierto para todos los compiladores que he usado. Pero tal vez la entrada del escáner ahora esté disponible en C99, y en este caso su programa debería funcionar. Si no, tendrá que esperar la próxima versión estándar y actualización de compiladores.
fuente
Podrías probar diferentes colores para los corchetes, ¿quizás algo de verde o rojo ayudaría? Creo que su compilador no puede reconocer la tinta negra: P
fuente
¿Soy el único que no puede reconocer el carácter entre 'retorno' y el punto y coma? ¡Eso podría ser!
fuente