-
Compilation avec un .o
Salut à tous,
Voici mon problème :
J'ai besoin dans un programme, d'instancier une classe qui se situe dans un autre fichier. De cet autre fichier je n'ai que le xxx.h (qui définit la classe), et le xxx.o (je n'ai donc pas le .cpp).
Donc dans mon fichier principal, je fais un #include "xxx.h", et dans mon main, je déclare un objet du type définit dans le xxx.h.
Pour compiler, je fais g++ -o main main.c xxx.o, et j'ai des erreurs à la compilation.
Donc ma question est : peut on appeler des méthodes, et instancier des classes situé dans un .o dont on a pas les sources, et si oui, comment faire ?
J'espere avoir été clair. Je posterai plus tard un bout de code pour illustrer ce que je veux dire.
Merci de votre aide.
-
A priori pas de problème. Quelles sont les erreurs ?
-
au temps pour moi, ca marche maintenant...
j'avais du me gourer dans me code ;)
-
Pense à cliquer sur :resolu:
-
En fait, j'ai une autre petite question, voici mon problème :
j'ai un evsa_config.h, dans lequel je trouve :
class EVSAConfiguration : public ASN1::SEQUENCE
{
typedef ASN1::SEQUENCE Inherited;
protected:
EVSAConfiguration(const void* info) : Inherited(info) {}
public:
EVSAConfiguration() : Inherited(&theInfo) {}
...
j'ai le evsa_config.o qui correspond.
Dans mon test_evsa.cpp je fais :
#include "evsa_config.h"
int main()
{
EVSAConfiguration c();
return 0;
}
Ceci juste pour tester la création d'une instance de EVSAConfiguration.
Je compile avec :
g++ -o test_evsa evsa_config.o test_evsa.cpp
et j'ai une erreur : "EVSAConfiguration non déclarée, premiere utilisation dans cette fonction"
Comment cela se fait ?
Merci de votre aide.
-
personne n'a une idée ? cela importe qu'il y ait plusieurs classes définies dans le .h ?