MFC + librairie static maison ... - C++ - Programmation
Marsh Posté le 30-10-2002 à 11:19:19
faire du C sous Windows ... chacun est malade à sa façon...
Pour ton problème: une librairie n'est pas juste un fichier compilé mais un fichier compilé et assemblé et pour cela il faut passer des paramètres spéciaux à ton compilateur et à savoir si ton compilateur les supporte ...
Marsh Posté le 30-10-2002 à 11:27:15
Visual j'ai du utilisé une fois, le jour où j'avais rien à faire donc là, je ne peux pas t'aider
Marsh Posté le 30-10-2002 à 11:30:05
Cependant, en théorie:
supposons que ta lib a pou nom bidule!
donc t'as bidule.cc (ou bidule.cpp, etc.)ET bidule.h
tu compile bidule.cc -> bidule.o
dans tes progs
#include <bidule.h>
et à la compilation, tu dois ajouter le bidule.o
mais comment je ne sais pas ...
(c'est tellement plus simple avec gcc ;-)
Marsh Posté le 30-10-2002 à 11:38:54
Dans la lib il y a plein de .h et .cpp ...
la compil me donne un .lib et c'est tout.
Dans visual il suffit de mettre un lien vers ce .lib dans le project setting.
Mais je ne vois pas quel .h inclure ...
Marsh Posté le 31-10-2002 à 05:17:41
tu n'aurais pas laisse les fonctions de ton projet lib dans ton projet executable par hasard??
Sinon un .lib c'est comme un .obj en plus gros
tu peux donc te contenter du .h qui contient les prototypes
des fonctions et les definitions de tes classes.
(ainsi que les declarations extern de tes variables globales)
A+
LeGreg
Marsh Posté le 31-10-2002 à 07:34:39
Citation : faire du C sous Windows ... chacun est malade à sa façon... |
Evites ce genre de propos, surtout si tu n'as bossé qu'une fois le jour où t'avais rien à faire, ça a tendance à vite pourrir un post.
Citation : Cependant, en théorie: |
Là tu parles d'un fichier objet. VC++ gère ça très bien à ta place et se débrouille tout seul. (Plus simple que cliquer sur un bouton "compiler" je vois pas ... ah si peux être : apprendre une chiée de paramètres dans un man et se créer un makefile)
filou66> s'il te dit que des objets sont déjà définis ... c'est que tu définis au moins 2 fois un même objet.
Tu as bien viré le .cpp de ta lib de ton projet ? Et ton .h ne contient que des _déclarations_ et pas de _définition_ ?
Marsh Posté le 03-11-2002 à 16:27:59
HelloWorld a écrit a écrit :
|
ben oui...
J'ai l'impression que le problème vien de mes includes ...
Dans le projet j'inclus les afxwin.h, afxext.h, etc ... et dans la lib, j'inclus afx.h ... (le projet utilise les MFC mais pas la lib). Il y a peut-être des recoupement entre afx.h et les afx*.h ...
Marsh Posté le 03-11-2002 à 17:16:07
heuh, dans ta lib, tu as bien coché 'use MFC' ? idem dans tes exe ?
Marsh Posté le 04-11-2002 à 12:20:16
tu recompiles pas tes classes communes dans tes deux projets quand meme
Marsh Posté le 05-11-2002 à 00:03:01
Montre un peu le contenu de tes headers.
Je parie ma chemise (j'en mets pas ) qu'il contiennent des objets générant du code.
Plus simple: inclus-les deux fois dans ton projet "classe".
Si les mêmes erreurs surviennent...
Marsh Posté le 30-10-2002 à 10:35:47
J'ai besoin de développer 2 exe différents qui auront des classes communes. J'ai donc choisi de créer un .lib avec ces classes. Jusque là pas de pb.
Mais quand dans le projet de mon exe je modifie le project setting pour rajouter mon .lib dans l'onglet "Link", je ne peut plus compiler mon projet !! Il me met des erreurs de linkage (125 !) en me disant que pleins de trucs sont déjà définis !
Si quelqu'un à déjà eu ce pb, comment l'a-t-il résolu ?
merci d'avance pour votre aide