| ||||
Nous allons écrire un fichier main.cpp, pour afficher une fenêtre avec une image de fond.
Il ne faut pas oublier de changer le fichier CMakeLists.txt :
On compile : make Scanning dependencies of target fenetreSDL [100%] Building CXX object CMakeFiles/fenetreSDL.dir/main.cpp.o Linking CXX executable fenetreSDL [100%] Built target fenetreSDL On exécute le programme : ./fenetreSDL Et voilà ce que l'on obtient : Pourquoi on met attente et pas pause comme tout à l'heure ? Compilez avec pause pour voir. Au secours, ça marche pas. Dans ce cas pas de panique, que dit le compilateur ? Le compilateur me dit : main.cpp: In function ‘void pause()’: main.cpp:10: error: new declaration ‘void pause()’ /usr/include/unistd.h:465: error: ambiguates old declaration ‘int pause()’ Restons calme. La première ligne vous indique la le fichier et la fonction où il y a un problème. La seconde vous indique la ligne dans le fichier et le type de problème (en anglais). New declaration 'void pause' veut dire que vous avez redéfinit une fonction en faisant une nouvelle déclaration : void pause(). La troisième ligne vous indique la situation de la fonction redéfinie : dans le fichier /usr/include/unistd.h ligne 465 la fonction s'appelle int pause(). Pour enlever l'erreur on ne va pas s'amuser à changer le nom de la fonction int pause() mais bien la notre. En la nommant void attente() on supprime le problème (qui vient en fait d'une fonction int pause() utilisée par SDL_image). En effet, vous avez le droit de surcharger une fonction que si vous passez des paramètres différents, deux fonctions ayant les mêmes paramètres mais ne retournant pas le même type de valeur ne sont pas correctes. Voilà l'incident est clôt. Dans ces cas la appelez vous que le compilateur est là pour vous aider (même si ça peut être trèèèèèèèèès énervant). | ||||
|