cs_jeje42
Messages postés3Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention 4 avril 2009
-
2 avril 2009 à 22:28
cs_jeje42
Messages postés3Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention 4 avril 2009
-
4 avril 2009 à 22:32
Bonjour a toutes et a tous,
Je suis assez novice en C++ et j'aurai besoin d'aide si cela est possible.
J'utilise un framework specifique a une collab de physique appliquee,
et je suis en train de creer ma propre classe pour l'inclure dans mon
analyse. Le probleme c'est qu'a la compilation, ma classe n'est pas
interpretee, je me demande si je dois en faire une librairie et si oui,
comment creer cette librairie.
Pour info, j'utilise un Makefile pour compiler le code et le logiciel
utilise en sortie pour afficher le resultat (arbres, histogrammes, etc)
est ROOT.
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 3 avril 2009 à 09:13
dur dur !
- Muonjj.o(.text+0x43e): undefined reference to `ROOT::GenerateInitInstance(Muonjj const*)'
Je vois pas comment une ROOT peut connaître ta classe Muonjj, à moins que le prototype de cette fonction soit : ROOT::GenerateInitInstance(TLorentzVector const*)
Les fonctions introuvable sont héritées ?
je ne vois pas les fonctions :
Muonjj.o: In function `__static_initialization_and_destruction_0(int, int)'
Muonjj.o: In function `Muonjj::IsA() const'
cs_jeje42
Messages postés3Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention 4 avril 2009 3 avril 2009 à 22:25
Oui, en fait je pense que root verifie si les classes ont ete
correctement ecrites c'est pour ca qu'il a pris comme argument ma
classe. A mon avis, Root ne comprend pas mom(mes) constructeur(s)
et/ou mon destructeur.
En effet, avant, le code qui marchait bien avait a la place de Muonjj,
ma classe perso, une classe incluse dans un package existant dans le
framework de la collaboration, appelee la classe "TMBMuon", situee dans
le package tmb_tree, dont voici le code :
cs_jeje42
Messages postés3Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention 4 avril 2009 4 avril 2009 à 22:32
Maintenant le programme compile : j'ai pour cela commente les lignes suivantes :
ClassDef(Muonjj,5); # dans le header
ClassImp(Muonjj) # dans le fichier source
mais malheureusement celui-ci ne s'execute pas encore correctement,
avec le message d'erreur :
Warning in <TClass::TClass>: no dictionary for class EventWeight is available
Error in <TClonesArray::TClonesArray>: Muonjj is not a valid class name
Error in <TClonesArray::TClonesArray>: Muonjj is not a valid class name
Error in <TTree::Bronch>: TClonesArray with no class defined in branch: b_Muonjj
Error in <TTree::Bronch>: TClonesArray with no class defined in branch: b_LooseMuonjj
Execution du constructeur de la classe MuonjjExecution du constructeur
de la classe
Muonjj******************************************************************************