undefined reference to mes fonction [C/SDL] - C - Programmation
Marsh Posté le 19-01-2010 à 19:19:00
t'as bien ajouter tes .c à ta cible ?
et bon, compiler en ligne de commande, au debut ca forme
Marsh Posté le 19-01-2010 à 19:20:39
Cpowa a écrit :
|
WTF ?
tu es sur que tu compiles bien tous tes sources ? Parce que là, on dirait que tu buildes juste ton main avec SDL, mais que tu n'as pas inclus les.o de tes autres fichiers .c
Edit : grillé en beauté =o
Marsh Posté le 19-01-2010 à 19:29:12
Joel F a écrit : t'as bien ajouter tes .c à ta cible ? |
je compilais en commande quand j'étais sous OpenSuSE
Tout mes fichiers sont bien ajoutés au projet.
theShOcKwAvE a écrit : |
Oui je sais, c'est l'accélération d'un pendule-ressort, j'en ai chié pour écrire ça
theShOcKwAvE a écrit : |
Oui, comme je l'ai dit.
Je précise que les 3/4 des sources proviennent d'un autre prog SDL que j'ai fait il y a un an et que j'ai réutilisé.
Et ce programme fonctionne parfaitement.
Mais comme par hasard les fonctions listées dans le log sont celles que j'ai modifiées/réécrites/crées.
Pourtant elles sont bonnes.
Marsh Posté le 19-01-2010 à 19:31:53
Oué, elle est tordue cette erreur.
Dans Evenement.c:init() tu as oublié une accolade fermante (certainement celle de la boucle for). Ce qui fait que toutes les fonctions déclarés sont locales à init() (extension de gcc, je suppose), ce qui fait que ça foire à l'édition des liens.
Et tu as une accolade en trop dans affichePoint().
Marsh Posté le 19-01-2010 à 19:37:14
tpierron a écrit : Oué, elle est tordue cette erreur. |
Tu sais que je t'aime toi
Marsh Posté le 19-01-2010 à 19:44:38
j'ai une autre question qui n'a rien à voir.
Vous savez comment on affiche la console avec un programme SDL ?
J'ai cherché partout mais j'ai pas trouvé.
J'en ai besoin pour passer des données au programme.
Quand je compile en "console application" j'ai bien la console qui s'affiche mais impossible d'afficher quoi que ce soit dedans avec des printf
Marsh Posté le 19-01-2010 à 20:09:04
Mouais, faut voir ce que tu veux faire avec. Si c'est juste pour un peu de debug, normallement si tu passes par le wizard de code::blocks pour créer un projet SDL, en compilant en mode DEBUG, la console sera présente (et les lectures/écriture fonctionneront). En release, la console est désactivée.
J'ai la flemme de voir le détail, je pense qu'il y un module de démarrage custom. Cela dit, c'est juste pour le debug, car un fgets va te figer ta fenêtre SDL (notamment aucun refresh lorsque la fenêtre MS-DOS passera inévitablement au premier plan). Si tu as la flemme de faire une vraie interface (d'autant que c'est un peu la bidouille pour faire cohabiter comctl32 et SDL en même temps), passe par un fichier texte ou des paramètres en ligne de commande.
Marsh Posté le 19-01-2010 à 20:26:36
tpierron a écrit : Si tu as la flemme de faire une vraie interface (d'autant que c'est un peu la bidouille pour faire cohabiter comctl32 et SDL en même temps), passe par un fichier texte ou des paramètres en ligne de commande. |
C'est plus par manque de temps que la flèmme.
J'aimerais bien les passer en ligne de commande, mais comment je fais ?
Marsh Posté le 19-01-2010 à 20:39:03
int main(int argc, const char** argv) :E
Marsh Posté le 19-01-2010 à 21:12:54
Joel F a écrit : int main(int argc, const char** argv) :E |
il aime pas, il me met 4erreurs
Code :
|
Et je suppose que c'est pas portable ?
Marsh Posté le 19-01-2010 à 21:55:33
non mais attend, t'as deja ouvert un livre de C ou bien ?
Regarde le code que tu as posté, tu as DEJA le bon prototype.
RTFM là quoi
Marsh Posté le 19-01-2010 à 21:58:15
Euh, il ne faut pas mettre de "const" dans le prototype de main.
La première version de ton main() était correcte. Pour passer les arguments depuis Code::Blocks utilise le menu "Project => Set program's argument".
Marsh Posté le 19-01-2010 à 22:31:49
Joel F a écrit : non mais attend, t'as deja ouvert un livre de C ou bien ? |
oui y a longtemps
Joel F a écrit : |
Oui mais je captais pas pourquoi tu me filais un prototype foireux
tpierron a écrit : Euh, il ne faut pas mettre de "const" dans le prototype de main. |
merci
Marsh Posté le 19-01-2010 à 22:50:49
tpierron a écrit : Euh, il ne faut pas mettre de "const" dans le prototype de main. |
je me gourres-je avec C++ ?
Marsh Posté le 19-01-2010 à 19:03:54
Salut,
J'ai des erreurs à la compilation de mon programme:
Je compile avec code::blocks, Le projet est bien en mode realase et debug, ainsi que tout mes fichiers.
Voici mes sources:
main.c
graphique.c
graphique.h
evenement.c
evenement.h
commun.h
Merci pour votre aide.