J'ai de la difficulté à compiler un programme C ++ que j'ai écrit.
Ce programme est très simple et, à ma connaissance, est conforme à toutes les règles énoncées dans la norme C ++. J'ai lu l'intégralité de l'ISO / IEC 14882: 2003 deux fois pour être sûr.
Le programme est le suivant:
Voici la sortie que j'ai reçue en essayant de compiler ce programme avec 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
Consterné, j'ai essayé g ++ 4.5.2, mais c'était tout aussi inutile:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
J'ai pensé que Clang (version 3.0 trunk 127530) devait fonctionner, car il était très apprécié pour sa conformité aux normes. Malheureusement, il ne m'a même pas donné l'un de ses jolis messages d'erreur mis en évidence:
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)
Pour être honnête, je ne sais pas vraiment ce que signifient ces messages d'erreur.
De nombreux autres programmes C ++ ont des fichiers source avec une extension .cpp , donc j'ai pensé que j'avais peut-être besoin de renommer mon fichier. J'ai changé son nom en helloworld.cpp , mais cela n'a pas aidé. Je pense qu'il y a un bogue très grave dans Clang parce que lorsque j'ai essayé de l'utiliser pour compiler le programme renommé, il s'est retourné, imprimé "84 avertissements et 20 erreurs générées". et fait beaucoup biper mon ordinateur!
Qu'est-ce que j'ai fait de mal ici? Ai-je manqué une partie critique de la norme C ++? Ou les trois compilateurs sont-ils vraiment tellement cassés qu'ils ne peuvent pas compiler ce programme simple?
la source
Originaire d' Overv @ reddit .
la source
Essayez de cette façon:
la source
Votre
<
et>
,(
et)
,{
et}
ne semblent pas très bien correspondre; Essayez de mieux les dessiner.la source
}
cause du problème. Essayez de vous concentrer sur la correspondance avec le{
Vous pouvez essayer le script python suivant. Notez que vous devez installer PIL et pytesser .
Pour l'utiliser, faites:
la source
Vous avez oublié d'utiliser Comic Sans comme police, c'est pourquoi son erreur.
la source
Je ne vois pas de nouvelle ligne après cette dernière accolade.
Comme vous le savez: "Si un fichier source qui n'est pas vide ne se termine pas par un caractère de nouvelle ligne, ... le comportement n'est pas défini".
la source
Ce programme est valide - je ne trouve aucune erreur.
Je suppose que vous avez un virus sur votre machine. Il serait préférable de reformater votre disque et de réinstaller le système d'exploitation.
Faites-nous savoir comment cela fonctionne, ou si vous avez besoin d'aide pour la réinstallation.
Je déteste les virus.
la source
J'ai trouvé qu'il est utile de ne pas écrire mon code sur la vitre de mon moniteur avec un marqueur magique, même s'il a l'air bien quand il est vraiment noir. L'écran se remplit trop vite et puis les gens qui me donnent un moniteur propre m'appellent chaque semaine.
Un couple de mes employés (je suis un directeur) intervient pour m'acheter un de ces ordinateurs avec les boutons. Ils ont dit que je n'aurais pas besoin de marqueurs et que je peux nettoyer l'écran moi-même quand il est plein mais je dois faire attention en le secouant. Je suppose que c'est délicat de cette façon.
C'est pourquoi j'engage des gens intelligents.
la source
File format not recognized
Vous devez formater correctement votre fichier. Cela signifie utiliser les bonnes couleurs et polices pour votre code. Voir les documentations spécifiques à chaque compilateur car ces couleurs varient d'un compilateur à l'autre;)la source
Vous avez oublié le pré-processeur. Essaye ça:
la source
Avez-vous écrit le programme à la main puis numérisé dans l'ordinateur? C'est ce que sous-entend "helloworld.png". Si tel est le cas, vous devez être conscient que le standard C ++ (même dans sa dernière édition) ne nécessite pas la présence de reconnaissance optique de caractères, et malheureusement il n'est inclus comme fonctionnalité optionnelle dans aucun compilateur actuel.
Vous voudrez peut-être envisager de transposer les graphiques dans un format textuel. Tout éditeur de texte brut peut être utilisé; l'utilisation d'un traitement de texte, bien que capable de générer une jolie impression, entraînera très probablement la même erreur que vous obtenez en essayant de numériser.
Si vous êtes vraiment aventureux, vous pouvez essayer d'écrire votre code dans un traitement de texte. Imprimez-le, de préférence en utilisant une police comme OCR-A . Ensuite, prenez votre impression et numérisez-la à nouveau. La numérisation peut ensuite être exécutée via un package OCR tiers pour générer un formulaire texte. Le formulaire texte peut ensuite être compilé à l'aide de l'un des nombreux compilateurs standard.
Attention cependant au coût élevé du papier que cela entraînera lors de la phase de débogage.
la source
Dessinez l'inclusion ci-dessous pour le compiler:
J'entends qu'il peut compiler des erreurs de syntaxe ...
la source
#include <JonSkeet>
.Malheureusement, vous avez sélectionné trois compilateurs qui prennent tous en charge plusieurs langues, pas seulement C ++. Ils doivent tous deviner le langage de programmation que vous avez utilisé. Comme vous le savez probablement déjà, le format PNG convient à tous les langages de programmation, pas seulement au C ++.
Habituellement, le compilateur peut comprendre le langage lui-même. Par exemple, si le PNG est évidemment dessiné avec des crayons, le compilateur saura qu'il contient Visual Basic. Si on dirait qu'il est dessiné avec un crayon mécanique, il est facile de reconnaître l'ingénieur au travail, en écrivant le code FORTRAN.
Cette deuxième étape n'aide pas non plus le compilateur, dans ce cas. C et C ++ semblent tout simplement trop similaires, jusqu'à la
#include
. Par conséquent, vous devez aider le compilateur à décider de quelle langue il s'agit réellement. Maintenant, vous pouvez utiliser des moyens non standard. Par exemple, le compilateur Visual Studio accepte les arguments de ligne de commande / TC et / TP , ou vous pouvez utiliser l'option "Compiler en tant que: C ++" dans le fichier de projet. GCC et CLang ont leurs propres mécanismes, que je ne connais pas.Par conséquent, je recommanderais d'utiliser la méthode standard à la place pour indiquer à votre compilateur que le code suivant est en C ++. Comme vous l'avez découvert maintenant, les compilateurs C ++ sont très pointilleux sur ce qu'ils acceptent. Par conséquent, la façon standard d'identifier C ++ est par les programmeurs d'intimidation ajouter à leur code C ++. Par exemple, la ligne suivante clarifiera à votre compilateur que ce qui suit est C ++ (et il ferait mieux de le compiler sans se plaindre).
la source
#pragma
c'était la bonne façon de "faire passer un message" au compilateur?Essaye celui-là:
la source
endl
(L) pasend1
(un). Mais +1 bien fait!Votre compilateur est-il réglé en mode expert?! Si oui, il ne devrait pas être compilé. Les compilateurs modernes en ont assez de "Hello World!"
la source
OCR dit:
Ce qui est sacrément bon, pour être juste.
la source
Évidemment, vous devez formater votre disque dur.
Vraiment, ces erreurs ne sont pas si difficiles à lire.
la source
J'ai converti votre programme de PNG en ASCII, mais il ne se compile pas encore. Pour votre information, j'ai essayé avec une largeur de ligne de 100 et 250 caractères mais les deux donnent des résultats comparables.
la source
Le premier problème est que vous essayez de renvoyer une valeur incorrecte à la fin de la fonction principale. La norme C ++ dicte que le type de retour de main () est int, mais à la place, vous essayez de renvoyer l'ensemble vide.
L'autre problème est - au moins avec g ++ - que le compilateur déduit la langue utilisée du suffixe de fichier. De g ++ (1):
La résolution de ces problèmes devrait vous laisser une application Hello World pleinement fonctionnelle, comme vous pouvez le voir dans la démo ici .
la source
Votre police craint, comment un analyseur devrait-il être capable de lire cela? Suivez un cours de calligraphie.
la source
Vos compilateurs attendent ASCII , mais ce programme est évidemment écrit en utilisant EBCDIC .
la source
Vous essayez de compiler une image.
Tapez ce que vous avez écrit à la main dans un document appelé main.cpp, exécutez ce fichier via votre compilateur, puis exécutez le fichier de sortie.
la source
Vous devez spécifier la précision de votre sortie précédée de deux points juste avant l'accolade de fermeture finale . Comme la sortie n'est pas numérique, la précision est nulle, vous avez donc besoin de cela -
: 0}
la source
ajouter :
juste après inclure: P: D
la source
std
tout le temps. Me rappelle de ne pas en avoir un.Semble que votre compilateur ne prend pas en charge les fichiers dans un tel codage hmm .... Essayez de le convertir en ASCII.
la source
Le problème réside dans la définition de la syntaxe, essayez d'utiliser la règle et les boussoles pour une description plus classique!
À votre santé,
la source
Essayez de changer d'interface d'entrée. C ++ s'attend à ce qu'un clavier soit connecté à votre ordinateur, pas un scanner. Il peut y avoir des problèmes de conflit de périphériques ici. Je n'ai pas vérifié dans la norme ISO si l'interface d'entrée au clavier est obligatoire, mais cela est vrai pour tous les compilateurs que j'ai jamais utilisés. Mais peut-être que l'entrée du scanner est maintenant disponible en C99, et dans ce cas, votre programme devrait en effet fonctionner. Sinon, vous devrez attendre la prochaine version standard et la mise à niveau des compilateurs.
la source
Vous pouvez essayer différentes couleurs pour les supports, peut-être qu'un peu de vert ou de rouge vous aiderait? Je pense que votre compilateur ne peut pas reconnaître l'encre noire: P
la source
Suis-je le seul à ne pas reconnaître le caractère entre «retour» et le point-virgule? Ça pourrait être ça!
la source