Retourner aux forums || Retourner au forum Programmation.c++
Programmation.c++ : Compilation avec des librairies objet
Posté par bash () le 21 octobre 2006
0
Bonjour à tous,J'ai un petit probleme de compilation ou voir meme de code.
Je m'explique :
Je dois ecrire un petit programme qui utilise des objets de 2 librairies obj1.o et obj2.o deja compillées.
Dans un premier temps au niveau code j'utilise directement mon objet sans avoir rien déclaré :
obj1 o (param1,pram2,...);
J'essay de compiler dans un deuxieme temps :
g++ test.cc
Ce qui me renvoi :
`obj1' undeclared (first use this function)
Jusqu'à la normal, puis :
g++ -l ../lib/obj1.o test.cc
Toujours la meme erreur, puis :
g++ -L ../lib/ test.cc
Toujours pareil.
Donc quelqu'un peut-il m'eclairer sur mon erreur ou oubli, en me donnant un petit exemple.
Merci d'avance.
Bash.
> Lire le message (4 commentaires, moyenne: 1).
#include <obj1.h>
Posté par
Florent C. (page perso, ) le 21/10/2006 à 13:47. (lien). Évalué à 1.
Avant de pouvoir utiliser les objets contenus dans obj1.o, il faut les déclarer, ce qui est fait généralement en faisant un #include du header de leur déclaration.
Tu as l'erreur lors de la compilation, et non lors de l'édition des liens, ce que tu semblais croire.
--
flure
flure
-
[^]Re: #include <obj1.h>
Posté par bash () le 21/10/2006 à 13:54. (lien). Évalué à 1.En faite mon probleme c'est que j'ai que les librairies obj1.o et obj2.o à ma disposition. J'ai pas les headers.
-
[^]Re: #include <obj1.h>
Posté par Florent C. (page perso, ) le 21/10/2006 à 14:01. (lien). Évalué à 2.Dans ce cas, tu peux toujours utiliser la forward declaration et ne passer que par des pointeurs. Par exemple, au lieu de faire :
obj1 o(param1, param2);
tu fais :class obj1; // forward declaration obj1* o = new obj1(param1, param2); // ... autres instructions delete o; // pas oublier de libérer le pointeur à la fin
Par contre, il faut que tu connaisses bien toutes les méthodes de tes objets, sinon tu risques d'avoir des problèmes. Je crois que c'est à l'édition des liens que tu auras des erreurs. En tout cas il vaut mieux que ce soit comme ça, sinon ce serait des plantages à l'exécution, ce qui est pire.--
flure
-
-
[^]Re: #include <obj1.h>
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c++



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.