Problème de compilation en c avec sdl2
Fermé
lwdu76
Messages postés
65
Date d'inscription
samedi 16 janvier 2021
Statut
Membre
Dernière intervention
8 novembre 2022
-
Modifié le 16 janv. 2021 à 21:21
lwdu76 Messages postés 65 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022 - 20 janv. 2021 à 13:06
lwdu76 Messages postés 65 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022 - 20 janv. 2021 à 13:06
A voir également:
- Problème de compilation en c avec sdl2
- Telecharger code blocks avec compilateur - Télécharger - Langages
- Breach compilation - Guide
- Compiler plusieurs pdf en un seul - Guide
- Configure: error: no acceptable c compiler found in $path - Forum Linux / Unix
- Sdl2/sdl.h - Forum C
5 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
16 janv. 2021 à 18:24
16 janv. 2021 à 18:24
Tu utilises la commande
Si tu as plusieurs fichiers sources, il faut tous les compiler.
gcc src\main.c -o bin/prog -I include -L lib -lmingw32 -lSDL2main -lSDL2, cette commande demande la compilation d'un seul fichier, nommé
src\main.c.
Si tu as plusieurs fichiers sources, il faut tous les compiler.
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 17 janv. 2021 à 14:46
Modifié le 17 janv. 2021 à 14:46
Salut,
les 4 codes sont inclus dans le fichier source qui est lui même inclus dans le fichier morpion et dans le fichier morpion on retrouve le fichier bin, include ( j'ai suprimmé le sous dossier sdl2 et inclus les fichiers directement dedans) et aussi le fichier lib.
Tout d'abord des précisions terminologiques pour qu'on se comprenne bien.
ensuite, tu présentes 4 codes, mais tu n'indiques pas le nom des fichiers qui correspondent à ces codes.
Le fichier rendering.h contient le prototype de la fonction render_game() que le linker ne trouve pas (cf. ta capture avec le message d'erreur). Tu as l'implémentation de cette fonction dans le deuxième fichier (qu'on suppose s'appeler rendering.c - s'il s'appelle autrement, adapte). Tu dois donc compiler ce fichier, en l'indiquant au compilateur dans ta ligne de commande (ce que tu ne fais pas, car tu indiques seulement main.c).
Le fichier logic.h contient le prototype de la fonction click_on_cell() que le linker ne trouve pas (cf. ta capture avec le message d'erreur). Aucun des codes sources que tu postes ne contient cependant l'implémentation de cette fonction. Tu as besoin de disposer de ce fichier, dont on va supposer que le nom est logic.c (trouve le fichier qui contient l'implémentation de click_on_cell() et adapte si nécessaire). Tu dois donc compiler ce fichier, en l'indiquant au compilateur dans ta ligne de commande (ce que tu ne fais pas, car tu indiques seulement main.c).
Donc, en supposant que tu aies bien les fichiers src/rendering.c et src/logic.c et qu'ils contiennent bien ce que l'on suppose qu'ils contiennent, ta ligne de commande devrait être, en partant de celle proposée par Dalfab :
Dal
les 4 codes sont inclus dans le fichier source qui est lui même inclus dans le fichier morpion et dans le fichier morpion on retrouve le fichier bin, include ( j'ai suprimmé le sous dossier sdl2 et inclus les fichiers directement dedans) et aussi le fichier lib.
Tout d'abord des précisions terminologiques pour qu'on se comprenne bien.
- main.c est un fichier (file en anglais)
- src/ bin/ sont des répertoires (directory en anglais), et non des fichiers, les répertoires sont parfois aussi appelés "dossiers" sous Windows
ensuite, tu présentes 4 codes, mais tu n'indiques pas le nom des fichiers qui correspondent à ces codes.
- supposons que le premier est main.c
- supposons que le deuxième est rendering.c
- supposons que le troisième est rendering.h
- supposons que le quatrième est logic.h
Le fichier rendering.h contient le prototype de la fonction render_game() que le linker ne trouve pas (cf. ta capture avec le message d'erreur). Tu as l'implémentation de cette fonction dans le deuxième fichier (qu'on suppose s'appeler rendering.c - s'il s'appelle autrement, adapte). Tu dois donc compiler ce fichier, en l'indiquant au compilateur dans ta ligne de commande (ce que tu ne fais pas, car tu indiques seulement main.c).
Le fichier logic.h contient le prototype de la fonction click_on_cell() que le linker ne trouve pas (cf. ta capture avec le message d'erreur). Aucun des codes sources que tu postes ne contient cependant l'implémentation de cette fonction. Tu as besoin de disposer de ce fichier, dont on va supposer que le nom est logic.c (trouve le fichier qui contient l'implémentation de click_on_cell() et adapte si nécessaire). Tu dois donc compiler ce fichier, en l'indiquant au compilateur dans ta ligne de commande (ce que tu ne fais pas, car tu indiques seulement main.c).
Donc, en supposant que tu aies bien les fichiers src/rendering.c et src/logic.c et qu'ils contiennent bien ce que l'on suppose qu'ils contiennent, ta ligne de commande devrait être, en partant de celle proposée par Dalfab :
gcc src\main.c src\rendering.c et src\logic.c -o bin\prog -I include -L lib -lmingw32 -lSDL2main -lSDL2
Dal
lwdu76
Messages postés
65
Date d'inscription
samedi 16 janvier 2021
Statut
Membre
Dernière intervention
8 novembre 2022
Modifié le 17 janv. 2021 à 15:45
Modifié le 17 janv. 2021 à 15:45
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
18 janv. 2021 à 09:44
18 janv. 2021 à 09:44
Peux-tu copier coller sur le forum la commande de compilation et tous les messages d'erreur qui suivent au lieu de faire une capture ?
Peux-tu confirmer que mes suppositions sont correctes ?
(...)
fonction click_on_cell() que le linker ne trouve pas (cf. ta capture avec le message d'erreur). Aucun des codes sources que tu postes ne contient cependant l'implémentation de cette fonction. Tu as besoin de disposer de ce fichier, dont on va supposer que le nom est logic.c (trouve le fichier qui contient l'implémentation de click_on_cell() et adapte si nécessaire)
D'où vient ton code ? Manifestement, ce n'est pas toi qui l'a programmé.
Peux-tu confirmer que mes suppositions sont correctes ?
- supposons que le premier est main.c
- supposons que le deuxième est rendering.c
- supposons que le troisième est rendering.h
- supposons que le quatrième est logic.h
(...)
fonction click_on_cell() que le linker ne trouve pas (cf. ta capture avec le message d'erreur). Aucun des codes sources que tu postes ne contient cependant l'implémentation de cette fonction. Tu as besoin de disposer de ce fichier, dont on va supposer que le nom est logic.c (trouve le fichier qui contient l'implémentation de click_on_cell() et adapte si nécessaire)
D'où vient ton code ? Manifestement, ce n'est pas toi qui l'a programmé.
lwdu76
Messages postés
65
Date d'inscription
samedi 16 janvier 2021
Statut
Membre
Dernière intervention
8 novembre 2022
>
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
18 janv. 2021 à 20:43
18 janv. 2021 à 20:43
Non parce que je m'essaye au sdl2 et du coup j'ai cherché des exemples pour pouvoir pratiquer et comprendre son fonctionnement j'ai regardé un vidéo sur le sdl2 et j'écrivais
Pour le message d'erreur il enchaîne entre sdl_main en bleu et en rouge et un warming qui n'est pas important
Pour le message d'erreur il enchaîne entre sdl_main en bleu et en rouge et un warming qui n'est pas important
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
>
lwdu76
Messages postés
65
Date d'inscription
samedi 16 janvier 2021
Statut
Membre
Dernière intervention
8 novembre 2022
19 janv. 2021 à 12:53
19 janv. 2021 à 12:53
Si tu n'indiques pas quelle est la commande de compilation et tous les messages d'erreur qui suivent, je ne peux pas t'aider. Les tous premiers messages sont souvent les plus signifiants.
Si tu ne confirmes pas comment s'appellent tes fichiers et ce qu'ils contiennent, et si tu disposes du fichier contenant l'implémentation de click_on_cell() et son nom, là encore, je ne peux pas t'aider.
Je ne vais pas répéter ces questions à l'infini, c'est toi qui vois si tu veux de l'aide.
Les auteurs de vidéos parfois fournissent des liens vers des URL permettant de récupérer les sources des projets réalisés.
Si tu ne confirmes pas comment s'appellent tes fichiers et ce qu'ils contiennent, et si tu disposes du fichier contenant l'implémentation de click_on_cell() et son nom, là encore, je ne peux pas t'aider.
Je ne vais pas répéter ces questions à l'infini, c'est toi qui vois si tu veux de l'aide.
Les auteurs de vidéos parfois fournissent des liens vers des URL permettant de récupérer les sources des projets réalisés.
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
>
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
19 janv. 2021 à 14:31
19 janv. 2021 à 14:31
coquille ci-dessus:
et si tu disposes du fichier contenant l'implémentation de click_on_cell() et son nom et que tu ne le fournis pas, là encore, je ne peux pas t'aider
et si tu disposes du fichier contenant l'implémentation de click_on_cell() et son nom et que tu ne le fournis pas, là encore, je ne peux pas t'aider
lwdu76
Messages postés
65
Date d'inscription
samedi 16 janvier 2021
Statut
Membre
Dernière intervention
8 novembre 2022
19 janv. 2021 à 15:02
19 janv. 2021 à 15:02
https://github.com/tsoding/profun c'est le lien vers le projet
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
20 janv. 2021 à 01:34
20 janv. 2021 à 01:34
OK, donc en supposant que tu as les fichiers include dans "include" et tes binaires de la bibliothèque SDL2 et de sdl2_fgx dans lib, essaye ceci :
Sinon, il y a aussi des instructions dans le fichier README.md pour utiliser CMake.
Dal
gcc -o bin/prog src\main.c src\rendering.c src\logic.c -I include -L lib -D_REENTRANT -lSDL2 -lSDL2_gfx
Sinon, il y a aussi des instructions dans le fichier README.md pour utiliser CMake.
Dal
lwdu76
Messages postés
65
Date d'inscription
samedi 16 janvier 2021
Statut
Membre
Dernière intervention
8 novembre 2022
20 janv. 2021 à 13:06
20 janv. 2021 à 13:06
D'accord
Merci
Merci
Modifié le 16 janv. 2021 à 21:17
Merci
17 janv. 2021 à 11:30