cs_Cyrik
Messages postés10Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention13 août 2003
-
11 août 2003 à 14:34
cs_Cyrik
Messages postés10Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention13 août 2003
-
13 août 2003 à 11:08
Je précise que les CY_Objet et Test.cpp ne sont pas dans les mm répertoires que les autres.
J'ai bien implémenté les fonctions que le compilateur nomme dans leur .cpp correspondant avec une définition dans le .h correspondant :
CY_Objet défini dans CY_Objet.h et implémenté dans CY_Objet.cpp
CY_M2D_Animation défini dans CY_M2D_ObjetAffichable.h et implémenté dans CY_M2D_ObjetAffichable.cpp
CY_Moteur2D défini dans CY_Moteur2D.h et implémenté dans CY_Moteur2D.cpp
cs_Cyrik
Messages postés10Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention13 août 2003 11 août 2003 à 14:43
Malheureusement, je ne pense pas que ce soit cela. J'explique rapidement pourquoi. J'avais au paravant fait tourner mon application (qui aurait pu avoir des pbs de lib, vu que j'utilise directx) qui marchait bien. Puis je l'ai ensuite divisée en plusieurs .h et .cpp pour que cela soit plus clair. Et depuis ca ne marche plus.
A moins qu'il faille changer les .lib pour chaque fichier .cpp et .h, mais tout de mm j'espère pas...
J'ajouterais de plus que les fonctions qui posent pb sont des fonctions que j'ai moi mm définie, et je n'ai jamais fait de .lib.
ADPro22
Messages postés126Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention27 octobre 2004 13 août 2003 à 03:40
Voici pourquoi tout le monde te dit la même chose :
pour faire simple, un exemple.
soient 3 fichiers
fonction.ccp // definition, code de la fonction "ma_fonction()"
fonction.hpp // déclaration de ma_fonction()
main.cpp // programme utilisant ma_fonction()
'à la main'
si tu compiles main.cpp et fonction.cpp en déclarant le fonction.hpp, tu obtiens main.obj et fonction.obj
il faut ensuite linker, c'est à dire faire l'édition des liens entre les différentes parties et avec les librairies (statiques .lib ou dynamiques .dll)
si tu ne linkes que fonction.obj, il [le linker] te renverra une erreur du type : pas d'entrée main() dans fonction.obj
Au contraire, si tu ne linkes, que main.obj, il renverra une erreur du type unuresolved external symbol ma_fonction??? (ou ??? sont des chiffres)
Donc, dans ton projet, il est important de mettre tous les .cpp dedans ensembles pour que ton linker n'oublie pas de .obj a l'edition des liens.
cs_Cyrik
Messages postés10Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention13 août 2003 13 août 2003 à 11:08
Hum, j'ai réussi à le compiler tout à l'heure mais avec une façon affreuse. J'ai commencer par sélectionner tous les .cpp et je les ai mis en "exclude file from build" (click droit dessus, Settings... , onglet Général) sauf mon .cpp principal. Ensuite, dans ce dernier, j'ai fait des includes de tous ces .cpp et ca compile.
Mon pb est peut etre résolu par le message en dessous, mais je ne sais pas comment lui dire quoi linker.