Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Spirou003 le Juillet 14, 2013, 05:28:42 pm

Titre: [Résolu] Undefined reference to constructeur de RenderWindow
Posté par: Spirou003 le Juillet 14, 2013, 05:28:42 pm
Bonjour,

Je me suis remis à programmer il y a deux semaines (maintenant que c'est les vacances ^^) et j'en suis arrivé au moment où je dois utiliser SFML. Donc voilà, je prépare tout ce qu'il me faut pour compiler le code minimal de SFML (celui donné dans l'accueil de la doc) et j'obtiens une erreur à l'édition des liens (une seule!):

undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKSsjRKNS_15ContextSettingsE'

J'ai donc recompilé sfml par moi-même (001.png (http://d27.e-loader.net/7HRO5LJE1k.png), 002.png (http://d35.e-loader.net/6COGLX1Sj4.png), log.txt => fichier joint), tout semble s'être bien passé: les exemples compilent et s'exécutent comme il faut. Puis j'ai refait le projet Code::Blocks en suivant les instructions du tutoriel (pour le linker, dans l'ordre: audio - graphics - window - system), j'ai déclaré SFML_DYNAMIC, mais ça ne change rien. En mettant SFML_STATIC (c'est absurde, mais bon), j'ai un message un peu plus explicite:

undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, std::string const&, unsigned int, sf::ContextSettings const&)'

La seule chose qui me paraît possible est que je n'aie pas mis les bonnes options de compilation (003.png (http://d6.e-loader.net/xG1fOCAYp2.png)), mais je sèche un peu quant à savoir si c'est ça ou autre chose. Et puisqu'une fenêtre est indispensable pour faire un jeu, ça me laisse pas trop le choix que de régler le problème ^^'

Au passage, je me posais une question: à quoi sert libsmfl-main.a?

Merci d'avance!
Titre: Re : Undefined reference to constructeur de RenderWindow
Posté par: Timidouveg le Juillet 14, 2013, 05:41:33 pm
Si tu mets la ou les dll de SFML dans le répertoire de ton programme, ça donne quoi ?
Titre: Re : Undefined reference to constructeur de RenderWindow
Posté par: Spirou003 le Juillet 14, 2013, 05:51:09 pm
Ca ne change rien
Titre: Re : Undefined reference to constructeur de RenderWindow
Posté par: Laurent le Juillet 14, 2013, 08:19:34 pm
Tu traînes de vieux en-têtes pré-SFML 2.0. Ce prototype de constructeur n'existe plus.

Citer
Si tu mets la ou les dll de SFML dans le répertoire de ton programme, ça donne quoi ?
Les erreur d'édition de liens n'ont absolument rien à voir avec les DLLs, ça se passe à un tout autre niveau (les DLLs ne sont requisent que pour éxecuter le programme). Un peu de lecture à ce sujet (les différentes étapes de construction d'un programme) ferait un peu de bien, c'est très important à comprendre ;)
Titre: Re : Undefined reference to constructeur de RenderWindow
Posté par: Timidouveg le Juillet 14, 2013, 08:40:58 pm
Merci pour l'info, j'avoue avoir beaucoup de lacunes que l'université n'a rien fait pour combler :-[ Je vais voir ce que je peux trouver sur tout ça :)
Titre: Re : Re : Undefined reference to constructeur de RenderWindow
Posté par: Spirou003 le Juillet 14, 2013, 08:59:48 pm
Tu traînes de vieux en-têtes pré-SFML 2.0. Ce prototype de constructeur n'existe plus.

Ah ben oui, effectivement =X ça m'apprendra à faire mes mises à jour entièrement :-D (là j'me sens carrément nul ^^)

Merci beaucoup!

Sinon je me demandais, à quoi sert libsfml-main.a?
Titre: Re : Undefined reference to constructeur de RenderWindow
Posté par: Laurent le Juillet 14, 2013, 10:54:31 pm
Citer
Sinon je me demandais, à quoi sert libsfml-main.a?

Citation de: Le tutoriel
Si vous avez choisi de créer un projet "Windows application", alors le point d'entrée de votre code devrait être la fonction "WinMain" au lieu de "main". Etant donné que c'est spécifique à Windows, et que votre code ne compilerait donc pas sous Linux ou Mac OS X, SFML fournit un moyen de garder un point d'entrée "main" standard dans ce cas : liez votre projet au module sfml-main ("sfml-main-d.lib" en Debug, "sfml-main.lib" en Release), de la même manière que vous avez lié sfml-graphics, sfml-window et sfml-system.
Titre: Re : Undefined reference to constructeur de RenderWindow
Posté par: Spirou003 le Juillet 15, 2013, 09:30:44 am
Merci! :)