J'essaie de compiler un programme qui inclut le fichier d'en-tête graphics.h
pour C. J'ai ajouté les fichiers d'en-tête graphics.h
et winbgim.h
dans le dossier include, ainsi que libbgi.a
dans le dossier lib.
Juste pour tester, j'ai créé un programme simple hello world et inclus le fichier d'en-tête graphics.h
.
Mais en compilant j'ai eu l'erreur suivante:
Dans le fichier inclus dans firstc.c: 2: 0: C:\mingw\bin ../lib/gcc/mingw32/4.7.1 /../../../../ include/graphics.h: 30: 59: erreur fatale : sstream: aucune compilation de fichiers ou de répertoires de ce type n'est terminée.
J'ai aussi essayé de chercher dans d'autres forums, où la même question avait été posée, mais je n'ai pas pu obtenir de réponse.
Une autre question, je suis tombé sur d'autres options graphiques pour C et C++ comme OpenGL et DirectX. Devrais-je apprendre ces au lieu de graphics.h?
graphics.h
est un en-tête non standard. Cela fait probablement référence à l'ancienne bibliothèque graphique BGI du compilateur Turbo C DOS. Cela ne fonctionnera que sur ce compilateur. Et bien entendu, DOS est un système d’exploitation complètement obsolète de nos jours.
Si vous êtes intéressé par la programmation graphique 3D, OpenGL et/ou DirectX sont en effet des alternatives meilleures, modernes, supportées par de nombreux compilateurs.
Si vous essayez de compiler le code source en incluant “graphics.h” dans code :: blocks IDE, vous devez configurer la bibliothèque winBGIm
.
WinBGIm
depuis http://winbgim.codecutter.org/ ou utilisez ( lien direct )graphics.h
, allez à la ligne302
changez int right=0
en int top=0
graphics.h
et winbgim.h
dans le dossier include du répertoire de votre compilateur.libbgi.a
dans le dossier lib de votre répertoire de compilation Settings
>> Compiler and debugger
>> linker settings
Add
dans la partie bibliothèques de liens, parcourez et sélectionnez le fichier libbgi.a
. -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
Ok
Vous pouvez également consulter cette vidéo tutorial.
Lorsque vous compilez un code source C avec un fichier d’en-tête graphics.h, vous devez modifier l’extension de fichier en .cpp. Sans cela, vous obtiendrez l'erreur «Erreur fatale: sstream: aucun répertoire de fichiers de ce type».
Donc, changez simplement l'extension .c en .cpp. Voici une procédure pas à pas pour compiler le code source graphics.h si vous utilisez Code :: Blocks pour exécuter le code.
Si la meilleure réponse ne fonctionne pas et que vous obtenez:
error: narrowing conversion of 'x' from 'int' to 'short unsigned int'
votre fenêtre graphique n'apparaît pas
suivre this tutorial et utiliser les en-têtes et bibliothèques corrigés (winBGIm(bug-free).rar
) dans le lien source fourni, a fonctionné pour moi dans Windows 10.
Mirror to winBGIm(bug-free_.rar)
compiler avec: g++ example.cpp -Wall -m32 -std=c++11 -pedantic -g -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 -o example.exe