Langage C (SDL) : inclusion de fonctions

Résolu/Fermé
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 - 23 mars 2011 à 00:10
Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 - 23 mars 2011 à 00:26
Bonjour,

Je travaille présentement sur un projet SDL sous Code::Blocks.

Je cherche à utiliser une fonction, maFonction(), déclarée dans un fichier à l'extérieur de main.cpp. Par contre, le compilateur me dit que ma fonction n'existe pas (« undefined reference to 'maFonction()' »).

Je crois avoir fait les bonnes manoeuvres :

- j'ai créé deux nouveaux fichiers, fichier.c et fichier.h ;

- j'ai ajouté les fichiers au projet (clic droit sur le projet > Add files...) ;

- j'ai écrit la fonction maFonction() dans fichier.c, et son prototype dans fichier.h ;

- j'ai ajouté les lignes suivantes :

#include <SDL.h>
#include <SDL_image.h>
#include fichier.h

dans les fichiers main.cpp et fichier.c pour inclure les fonctions SDL que j'utilise, et ma fonction personnalisée.

Je n'ai aucune erreur par rapport aux liens.

Pour l'instant, la fonction ne contient qu'un printf(), ce qui (dans un projet SDL) écrit dans un fichier stdout.txt dans le dossier du fichier exécutable.

Je constate que dans un simple projet de console, non seulement cette méthode fonctionne, mais je n'ai même pas besoin d'inclure le fichier .h dans le fichier main.

Comment exactement doit-on utiliser des fonctions externes pour un projet SDL ?

Je vous remercie d'avance.

Latin1

A voir également:

1 réponse

Latin1 Messages postés 50 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 19 février 2013 3
23 mars 2011 à 00:26
Je viens de trouver : le projet étant un projet SDL, le fichier main a été créé avec l'extension .cpp (C++) par défaut.

Une fois l'extension changée à .c, le tout s'est compilé en mode C et il n'y avait plus d'erreur.

Pour ceux que ça peut aider.
1