-
Vector et SDL
Bonjour,
Je suis entrain de programmer un petit jeu en sdl
Mais depuis que j'utilise la classe vector fournis par STL, rien ne marche
Je suis sous visual c++
C'est un message d'erreur du type error LNK2019: symbole externe non résolu
Je me suis cassé la tête, j'ai recréer un projet
J'ai utiliser la classe vector à l'état le plus simple (juste un main avec déclaration du vecteur (avec un int) et un pushback()), ça a marché, après j'inclue juste mes header de SDL, le message d'erreur reviens, je retire alors mon header Vector ainsi que le code qui utilise le vecteur, plus d'erreur
Alors je suppose qu'il y a un problème entre les les librairies SDL et Vector, ou alors Vc++ débloque
Merci à vous
-
Tu n'oublierais pas de nous donner le code et l'erreur qui va avec ?
-
Salut,
Je sors ma boule de crystal, bien qu'elle ne fonctionne pas très bien ces temps-ci, et j'y vois qu'il y a de fortes chances que tu aies tout simplement oublié de préciser, dans les options de ton projet, du coté de l'éditeur de lien, qu'il fallait lier le projet avec sdl.lib ou similaire ;)
Plus sérieusement:
Un symbole externe non résolu indique le plus souvent que l'éditeur de lien n'arrive pas à trouver l'implémentation d'une fonction ou d'une classe dans les fichiers objet (comprendre: les fichiers contenant l'implémentation de la classe ou de la fonction sous forme binaire, utilisable par le processeur) qu'il a à sa disposition.
Ce fichier objet n'est rien d'autre que, tout simplement, la dll ou le .lib quand il s'agit d'une bibliothèque externe, et donc, il te suffira de préciser à l'éditeur de lien qu'il doit effectuer la liaison avec la bibliothèque dans laquelle se trouve normalement cette implémentation pour que tout rentre dans l'ordre ;)
-
Si effectivement en enlevant ton utilisation du vector cela marche il est possible que tu aies oublié de faire
-
J'ai bien inclue dans l'éditeur de liens "SDL.lib SDLmain.lib SDL_ttf.lib"
Ensuite hegros, quand je disais qu'en enlevant l'utilisation de Vector je retirais aussi mon include de vector
Finalement sur un forum anglais, j'ai trouvé la solution, dans l'onglet génération de code puis Blibliothèque runtime, il faut passer à DLL de débogage Multi-Thread
Le problème est que sur tous les tutos ils spécifient de mettre DLL Multi-thread uniquement, donc pour l'instant mon projet marche, mais pour la suite j'ai peur de rencontrer un autre problème :s
Merci à vous
-
Non y'a pas de problèmes. C'est juste que ton programme à toi + toutes les bibliothèques que tu utilises doivent être compilées avec la même CRT.
T'en choisis une pour le débogage, une pour le Release et c'est terminé ! ;)