Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Erreur de compilation
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Erreur de compilation

Posté le 27/02/2014 12:58

Salut,
J'essaye de compiler un tout petit programme avec Code::Blocks et j'obtient une erreur que je ne comprends pas.
Mon code est tout simple :

#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>

int main(int argc, char *argv[])
{
   return 0;
}


J'ai l'erreur undefined reference to 'WinMain@16'
Savez-vous à quoi ça peut correspondre ? Merci .


1, 2 Suivante
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 14:54 | #


Je viens de trouver cette phrase sur un site :
"Pour compiler un programme avec MinGW, il est nécessaire de spécifier la bibliothèque « libmingw32.a » dans l'éditeur de liens, sinon l'erreur « undefined reference to 'WinMain@16' » apparaît."

Quelqu'un sait ce qu'est "l'éditeur de liens" ?
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 27/02/2014 15:04 | #


Il me semble que pour la SDL il faut

#include <SDL/SDL.h>

Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 16:40 | #


Je crois aussi que l'erreur vient de là

Allez, petit cours sur la compilation
Il y a trois étapes:

- Précompilation: Le compilateur s'occupe grosso modo de toutes les lignes qui commencent par un #: includes, defines, etc...
- Compilation: La compilation en elle-même s'effectue ; le code C est transformé en binaire. La compilation génère des fichiers .o.
- L'édition des liens : L'éditeur de liens rassemble les .o pour former, selon les cas, des .a (bibliothèques), .dll (bibliothèques à lien dynamique), ou des .exe entre autres.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 18:27 | #


Comment pouvez-vous me dire que l'erreur vient de #include <SDL/SDL.h> alors que vous ne savez pas où j'ai mis mes fichiers .h ?

#include <SDL.h> signifie que mes .h se trouve directement dans le dossier de mon IDE (Code::Blocks), alors que #include <SDL/SDL.h> veut dire que mes .h se trouve dans un dossier SDL qui se trouve dans le dossier de mon IDE. Or ce n'est pas le cas. Quand je compilais avec #include <SDL/SDL.h>, j'avais une erreur qui me disait que SDL.h est introuvable. Avec #include <SDL.h> je n'ai plus cette erreur, donc ce n'est pas de là que vient le problème...
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 18:43 | #


Tu as raison. Après tout, cela aurait créé une erreur au niveau du précompilateur et pas de l'éditeur de liens (si tu as bien lu ).

Il faut donc que tu ailles dans les options de Code::Blocks, et dans la partie spécifiant les bibliothèques (désolé je ne connais pas la GUI de Code::Blocks), tu dois pouvoir ajouter un fichier.
Sélécationne le libmingw32.a (qui est donc une bibliothèque compilée) que tu peux trouver en effectuant une recherche rapide.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 18:52 | #


Je viens de le faire, dans "Settings", "Compiler", "Link settings" j'ai mis "libmingw32.a" que j'ai trouvé dans mon dossier "Mingw" de Code::Blocks, mais ça n'a rien changé :aie2:
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 18:53 | #


Essaie de la copier dans le dossier de ton projet (là où se trouve les dll).
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 19:02 | #


Toujours pareil... ça ne change rien du tout.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 19:07 | #


Eh bien, cela veut dire que le fichier est "invalide"
S'il y a des mises àjour, tu devrais les installer.
Sinon, retélécharge-la.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 19:17 | #


Youpi !
Maintenant j'ai une erreur de plus :).
undefined reference to '__dyn_tls_init_callback'

Et l'erreur précédente est toujours là. Décidement je n'y comprend plus rien...
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 20:05 | #


Quand je vais dans "tool" il n'y a pas "compiler option". Tu es sûr que ce lien est pour Code::Blocks ?

Lephenixnoir aurai-tu "l'ancien" libmingw32.a ? Depuis que j'ai téléchargé le tiens la compilation ne marche plus, même pour d'autres fichiers dans lesquels ça marchait jusqu'à maintenant.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 20:12 | #


Non, il s'agit de l'EDI Dev-Cpp.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 20:16 | #


D'accord. Je réinstale Code::Blocks.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 27/02/2014 20:17 | #


Désolé, j'avais pris le premier résultat sur google, je n'avais pas lu la page en entière.

Personnellement je n’avais pas besoin de rajouter « libmingw32.a » dans l'éditeur des liens.

Lorsque tu as créé le projet, as-tu bien choisi "SDL project"? Si tu choisis "Console application" ça ne marchera pas.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 20:18 | #


Je pense que c'était sous-entendu
Mais, à la réflexion, il aurait dû avoir un code par défaut.
Oh non...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 27/02/2014 20:22 | #


Effectivement, normalement il y a un code par défaut, donc tu n'as pas créé un projet SDL ;).

File > New > Project > SDL project.
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/02/2014 20:58 | #


Si, j'ai créé un projet SDL !
Mais dans le cours du site du zéro, ils disent de supprimer le code par défaut et de le remplacer par :
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>

int main(int argc, char *argv[])
{
    return 0;
}


C'est ce que j'ai fait, à l'exception du #include <SDL/SDL.h> que j'ai remplacé par #include <SDL.h> (j'ai expliqué plus haut pourquoi).
J'ai créé un projet SDL, c'est sûr et certain.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/02/2014 21:02 | #


Et pourrais-tu compiler le code par défaut ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 118 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd