IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

problème dans une librairie dynamique *.so sous linux


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut problème dans une librairie dynamique *.so sous linux
    bonjour
    je m'excuse si ma question vous dérange
    je travaille sur un code développer en c++ qui bien marché sur mac os ,ce code va permettre de crée des librairies *.so à partir des *.cc et *.h j'ai utilisé pour cela comme flags:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CXXFLAGS = -g -O2 -fPIC -Wall -ldl -D_GNU_SOURCE ,CXX := g++ et $(CXX)-shared -o $(LIBNAME) $(CLIBLIB) $(OUT_OBJS) cette étape est bien passé j'ai obtenu les *.so comme suit :
    morad@linux-nzlc:~/Musique/workdir> ls library/tklibs/lib/
    libAnalyticalJacobians.so libDetGeometry.so libGeomPropagators.so libPatternTestTools.so libSmearingClusterizers.so libTkLayout.so
    libBaseMagneticField.so libDetLayout.so libKalmanUpdators.so libPatternTools.so libStatUtilities.so libTkNavigation.so
    libBasicDet.so libDetUtilities.so libMaterialEffects.so libPropagators.so libSurfaceGeometry.so libTrackFitters.so
    libBasicStripDet.so libDetVolumeGeometry.so libNumericalJacobians.so libRKPropagators.so libTkCommonDet.so libTrajectoryParametrization.so
    libCommonStripDet.so libGenUtil.so libPatternPrimitives.so libSiPixelDet.so libTkFastSimHit.so libUI.so
    morad@linux-nzlc:~/Musique/workdir> ./libScript.py
    ensuite la deuxième étape je voudrais crée l’exécutable pour cela j'ai spécifie les -I,-L et -l dans le makfile j'ai comme une flags :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CXX = g++ et $(CXX) -O2 -g -fopenmp $(CILIBLAY) $(OUT_OBJS) $(OBJDIR)/$(MAIN_PROG).o -o $(MAIN_PROG).exe
    mais avec ça après l’exécution j'obtiens une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    morad@linux-nzlc:~/Musique/workdir/layout/analyze> make mainP=runAnalyze
    Makefile:85: /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d: Aucun fichier ou dossier de ce type
    g++ -MM -I/cern/CLHEP/2.0.4.5/include/ -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs -I/cern/ROOT/source/root/include -I/usr/include/freetype2/freetype/ -I/usr/include/freetype2 -I/cern/Minuit2/5.28.00/include -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/ myAnalyze.cc > /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d.$$; \
    sed 's,\(myAnalyze\)\.o[ :]*,\1.o /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d : ,g' < /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d.$$ > /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d; \
    rm -f /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d.$$
    g++ -c -I/cern/CLHEP/2.0.4.5/include/ -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs -I/cern/ROOT/source/root/include -I/usr/include/freetype2/freetype/ -I/usr/include/freetype2 -I/cern/Minuit2/5.28.00/include -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/ myAnalyze.cc -o /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.o 
    g++ -c -I/cern/CLHEP/2.0.4.5/include/ -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs -I/cern/ROOT/source/root/include -I/usr/include/freetype2/freetype/ -I/usr/include/freetype2 -I/cern/Minuit2/5.28.00/include -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/ runAnalyze.cxx -o /home/morad/Musique/workdir/layout/build/analyze/runAnalyze.o
    g++ -O2 -g -fopenmp -L/home/morad/Musique/workdir/library/tklibs/lib -L/home/morad/Musique/workdir/layout/lib -lxmlgeom -ltrack -lcross -lMaterialEffects -lPropagators -ltracking -lgeom -lStatUtilities -lAnalyticalJacobians -ltkhist -lxmltkgeom -lutils -lopt -ldraw -lanalyze -L/usr/lib -lGeomPropagators -lPatternPrimitives -lSurfaceGeometry -lBaseMagneticField -lUI -lGenUtil -lSiPixelDet -lSmearingClusterizers -lBasicDet -lTrackFitters -lTkFastSimHit -lCommonStripDet -lDetLayout -lTkLayout -lDetGeometry -lKalmanUpdators -lTkCommonDet -lPatternTools -lTrajectoryParametrization -lBasicStripDet -lDetUtilities -lDetVolumeGeometry -lPatternTestTools -lRKPropagators -lTkNavigation -lNumericalJacobians -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0 -L/cern/ROOT/source/root/lib -L/cern/Minuit2/5.28.00/lib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lfreetype -lz /usr/lib/libbz2.so.1.0.6 -lpthread -lm -ldl -lMinuit2 -L/cern/CLHEP/2.0.4.5/lib/ -lCLHEP-2.0.4.5 /usr/lib/libstdc++.so.6 /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.o /home/morad/Musique/workdir/layout/build/analyze/runAnalyze.o -o runAnalyze.exe
    /home/morad/Musique/workdir/library/tklibs/lib/libSmearingClusterizers.so: undefined reference to `TrivialROUSetter::set(Module)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `FixTIDTopology::recreateTopologies()'
    /home/morad/Musique/workdir/library/tklibs/lib/libSmearingClusterizers.so: undefined reference to `TkDetTypeName::shortName(DetType const&)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `DetUnitGluer::glue(__gnu_cxx::__normal_iterator<D etUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >, __gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >, __gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >, __gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkFastSimHit.so: undefined reference to `RawHepEventFactoryFromGun::RawHepEventFactoryFrom Gun()'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `toa:perator()(int const&) const'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `FixTIDTopology::FixTIDTopology()'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `DetBlade:etBlade(__gnu_cxx::__normal_iterator<D et* const*, std::vector<Det*, std::allocator<Det*> > >, __gnu_cxx::__normal_iterator<Det* const*, std::vector<Det*, std::allocator<Det*> > >)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `toa::~toa()'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `FullTracker::instance()'
    collect2: erreur: ld a retourné 1 code d'état d'exécution
    make: *** [runAnalyze] Erreur 1
    morad@linux-nzlc:~/Musique/workdir/layout/analyze>
    ce qui non défini dans *.so par exemple TrivialROUSetter est seulement déclaré dans un fichier .h il est n'est pas défini dans .cc j'ai l'intuition que le compilateur g++ pour l'opensuse a besoin d'une flags pour n'est chercher les définitions des includes *.h que s'il est necessaire contrairement au g++ pour mac-os
    merci d'avance

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 187
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 187
    Points : 17 135
    Points
    17 135
    Par défaut
    Bonjour,
    il se plaint que tu n'as pas de *.d, essaie un make depends, make dependencies ou autre.

    Regarde si tu as une cible qui ressemble à cela dans ton makefile
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    merci pour cette motivation
    les dépendances n'a pas d'influence ici , maintenant je dit que j'ai déjà poser ma complexe problème dans un autre forum http://www.cplusplus.com/forum/unices/101797/ je vais poser mon MAKFILE afin de trouver une indication de ce problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     # this Makefile compiles all the *.cc files in the current directory
    # It generates the dependencies automatically, following the example at
    # info:/make/Automatic Prerequisites
    # names of cc files without suffixe
    # -------------
    # The Prerequisites and object files will be writen in objfiles
    #---------------
     
     
    OBJDIR := /home/morad/Musique/workdir/layout/build/analyze
    sources := $(wildcard *.cc)
     
    BASENAMES_FILES = $(basename $(sources)) 
    objfiles = $(addsuffix .d,$(BASENAMES_FILES))
    OUT_OBJS = $(addprefix $(OBJDIR)/,$(objfiles))
     
     
    objfiles := $(addsuffix .o,$(BASENAMES_FILES))
    OUT_OBJS := $(addprefix $(OBJDIR)/,$(objfiles))
     
    # include and libs paths paths 
    CLHEPDIR_INC  := -I/cern/CLHEP/2.0.4.5/include/
     
    CLHEPDIR_LIB  := -L/cern/CLHEP/2.0.4.5/lib/
     
    CLHEPDIR_LIBS := -lCLHEP-2.0.4.5
     
    LOCALINC      := -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs 
     
    ALPINEDIR_INC := -I/home/morad/Musique/workdir/library/tklibs
     
    ALPINEDIR_LIB := -L/home/morad/Musique/workdir/library/tklibs/lib -L/home/morad/Musique/workdir/layout/lib  -lxmlgeom -ltrack -lcross -lMaterialEffects -lPropagators -ltracking -lgeom -lStatUtilities -lAnalyticalJacobians -ltkhist -lxmltkgeom -lutils -lopt -ldraw -lanalyze
     
    ALPINEDIR_LIBS:= -lTkLayout -lDetGeometry -lKalmanUpdators  -lDetVolumeGeometry -lPatternTestTools -lRKPropagators -lTkCommonDet -lPatternTools -lTrajectoryParametrization -lBasicStripDet -lDetUtilities -lBasicDet -lGeomPropagators -lPatternPrimitives -lSurfaceGeometry -lBaseMagneticField -lUI -lGenUtil -lSiPixelDet -lSmearingClusterizers -lTrackFitters -lTkFastSimHit -lCommonStripDet -lDetLayout  -lTkNavigation -lNumericalJacobians 
     
    ROOTDIR_INC   := -I/cern/ROOT/source/root/include  -I/usr/include/freetype2/freetype/  -I/usr/include/freetype2 
     
    ROOTDIR_LIB   := -L/cern/ROOT/source/root/lib  /usr/lib/libX11.so
     
    ROOTDIR_LIBS  := -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix\
    		 -lPhysics -lMathCore -lThread -lfreetype -lz  /usr/lib/libbz2.so.1.0.6  -pthread -Wl,-rpath,/cern/ROOT/source/root/lib -lpthread  -lm -ldl
     
    XMLDIR_INC    := -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/    
    XMLDIR_LIB    := -L/usr/lib
     
    XMLDIR_LIBS   := -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0  /usr/lib/preloadable_libintl.so
     
    MINUITDIR_INC := -I/cern/Minuit2/5.28.00/include
    MINUITDIR_LIB := -L/cern/Minuit2/5.28.00/lib
    MINUITDIR_LIBS := -lMinuit2 
    #CPPPATH := 
    CILIBLAY = $(ALPINEDIR_LIB)  $(XMLDIR_LIB)  $(ALPINEDIR_LIBS) $(XMLDIR_LIBS) $(ROOTDIR_LIB) $(MINUITDIR_LIB) $(ROOTDIR_LIBS) $(MINUITDIR_LIBS) $(CLHEPDIR_LIB) $(CLHEPDIR_LIBS)  /usr/lib/libstdc++.so.6 /lib/libutil-2.15.so /lib/libSegFault.so
    CINCLAY =  $(CLHEPDIR_INC) $(LOCALINC) $(ROOTDIR_INC) $(MINUITDIR_INC) $(XMLDIR_INC)    
     
    MAIN_PROG = $(mainP)
     
    #CXXFLAGS = -g -O2 -fPIC -Wall -D_GNU_SOURCE 
     
    CXXFLAGS =-m32 
    #-m32 -fPIC -Wall -D_GNU_SOURCE
    CXX = g++ 
    #-D_GNU_SOURCE 
     
    $(OBJDIR)/%.d: %.cc
    	$(CXX) -MM $(CXXFLAGS) $(CINCLAY)  $< > $@.$$$$; \
    	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
    	rm -f $@.$$$$
     
    #objfiles := $(addsuffix .o,$(BASENAMES_FILES))
    #OUT_OBJS := $(addprefix $(OBJDIR)/,$(objfiles))
     
    all: $(MAIN_PROG)
     
    $(OBJDIR)/$(MAIN_PROG).o : $(MAIN_PROG).cxx
    	$(CXX) -c -g $(CXXFLAGS) $(CINCLAY) $< -o $@
     
    $(MAIN_PROG) : $(OUT_OBJS) $(OBJDIR)/$(MAIN_PROG).o
    #	@echo "---- " $(CILIBLAY)
    	$(CXX) -fopenmp  $(CILIBLAY)  $(OUT_OBJS)  $(OBJDIR)/$(MAIN_PROG).o -o $(MAIN_PROG)
    #-undefined dynamic_lookup
    $(OBJDIR)/%.o : %.cc 
    	$(CXX) -c -g $(CXXFLAGS) $(CINCLAY)  $< -o $@  
     
    include $(sources:%.cc=$(OBJDIR)/%.d)
     
    clean :
    	rm $(OBJDIR)/*.d $(OBJDIR)/*.o $(LIBNAME)

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 187
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 187
    Points : 17 135
    Points
    17 135
    Par défaut
    Essaie la commande "make all".

    Avec make, en l'absence de cible explicite, c'est la premiere qui est exécutée.

    Ici, ce n'est pas "all: $(MAIN_PROG)", mais "$(OBJDIR)/%.d: %.cc"

    la correction est de déplacer le "all: $(MAIN_PROG)" pus haut (ici le mettre en ligne 63)
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    merci pour cette réponse , j'ai déplacé cette commande vers la ligne 63 mais après la compilation j'ai obtenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    morad@linux-nzlc:~/Musique/workdir/layout/analyze> make mainP=runAnalyze
    Makefile:79: /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d: Aucun fichier ou dossier de ce type
    g++  -MM -m32  -I/cern/CLHEP/2.0.4.5/include/ -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs  -I/cern/ROOT/source/root/include  -I/usr/include/freetype2/freetype/  -I/usr/include/freetype2  -I/cern/Minuit2/5.28.00/include -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/          myAnalyze.cc > /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d.$$; \
    sed 's,\(myAnalyze\)\.o[ :]*,\1.o /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d : ,g' < /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d.$$ > /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d; \
    rm -f /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.d.$$
    g++  -c -g -m32  -I/cern/CLHEP/2.0.4.5/include/ -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs  -I/cern/ROOT/source/root/include  -I/usr/include/freetype2/freetype/  -I/usr/include/freetype2  -I/cern/Minuit2/5.28.00/include -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/          myAnalyze.cc -o /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.o  
    g++  -c -g -m32  -I/cern/CLHEP/2.0.4.5/include/ -I/home/morad/Musique/workdir/layout -I/home/morad/Musique/workdir/library/tklibs  -I/cern/ROOT/source/root/include  -I/usr/include/freetype2/freetype/  -I/usr/include/freetype2  -I/cern/Minuit2/5.28.00/include -I/usr/include/libxml2 -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include/ -I/usr/include/glibmm-2.4/ -I/usr/lib/glibmm-2.4/include/ -I/usr/include/sigc++-2.0/ -I/usr/lib/sigc++-2.0/include/ -I/usr/include/glib-2.0/ -I/usr/lib/glib-2.0/include/ -I/cern/gettext/0.18.2/include/         runAnalyze.cxx -o /home/morad/Musique/workdir/layout/build/analyze/runAnalyze.o
    g++  -fopenmp  -L/home/morad/Musique/workdir/library/tklibs/lib -L/home/morad/Musique/workdir/layout/lib  -lxmlgeom -ltrack -lcross -lMaterialEffects -lPropagators -ltracking -lgeom -lStatUtilities -lAnalyticalJacobians -ltkhist -lxmltkgeom -lutils -lopt -ldraw -lanalyze  -L/usr/lib  -lTkLayout -lDetGeometry -lKalmanUpdators  -lDetVolumeGeometry -lPatternTestTools -lRKPropagators -lTkCommonDet -lPatternTools -lTrajectoryParametrization -lBasicStripDet -lDetUtilities -lBasicDet -lGeomPropagators -lPatternPrimitives -lSurfaceGeometry -lBaseMagneticField -lUI -lGenUtil -lSiPixelDet -lSmearingClusterizers -lTrackFitters -lTkFastSimHit -lCommonStripDet -lDetLayout  -lTkNavigation -lNumericalJacobians  -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0  /usr/lib/preloadable_libintl.so -L/cern/ROOT/source/root/lib  /usr/lib/libX11.so -L/cern/Minuit2/5.28.00/lib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lfreetype -lz  /usr/lib/libbz2.so.1.0.6  -pthread -Wl,-rpath,/cern/ROOT/source/root/lib -lpthread  -lm -ldl -lMinuit2  -L/cern/CLHEP/2.0.4.5/lib/ -lCLHEP-2.0.4.5  /usr/lib/libstdc++.so.6 /lib/libutil-2.15.so /lib/libSegFault.so  /home/morad/Musique/workdir/layout/build/analyze/myAnalyze.o  /home/morad/Musique/workdir/layout/build/analyze/runAnalyze.o -o runAnalyze
    /home/morad/Musique/workdir/library/tklibs/lib/libSmearingClusterizers.so: undefined reference to `TrivialROUSetter::set(Module)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `FixTIDTopology::recreateTopologies()'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `TkDetTypeName::shortName(DetType const&)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `DetUnitGluer::glue(__gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >, __gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >, __gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >, __gnu_cxx::__normal_iterator<DetUnit**, std::vector<DetUnit*, std::allocator<DetUnit*> > >)'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkFastSimHit.so: undefined reference to `RawHepEventFactoryFromGun::RawHepEventFactoryFromGun()'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `toa::operator()(int const&) const'
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `FixTIDTopology::FixTIDTopology()'                                                                        
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `DetBlade::DetBlade(__gnu_cxx::__normal_iterator<Det* const*, std::vector<Det*, std::allocator<Det*> > >, __gnu_cxx::__normal_iterator<Det* const*, std::vector<Det*, std::allocator<Det*> > >)'                                                                                                          
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `toa::~toa()'                                                                                             
    /home/morad/Musique/workdir/library/tklibs/lib/libTkLayout.so: undefined reference to `FullTracker::instance()'                                                                                 
    collect2: erreur: ld a retourné 1 code d'état d'exécution                                                                                                                                       
    make: *** [runAnalyze] Erreur 1                                                                                                                                                                 
    morad@linux-nzlc:~/Musique/workdir/layout/analyze>

    vous pouvez voir une long discusion sur ce sujet sur http://www.cplusplus.com/forum/unices/101797/ afin de m'aider de trouver une solution de ce complexe problème

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SRC = monFichier.cpp
    OUT_OBJS = $(source:.cpp=.o)
    Sinon ça veut juste dire que tu n'as pas codé les méthodes

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    même avec ça ,à la sortie on a la même erreur

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    j'ai fais une erreur désolé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SRC = monFichier.cpp
    OUT_OBJS = $(SRC:.cpp=.o)

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    même avec ça ,à la sortie on a la même erreur

  10. #10
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 187
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 187
    Points : 17 135
    Points
    17 135
    Par défaut
    undefined reference: le linker ne trouve pas le code correspondant à un symbole donné.

    Vérifie si les fonctions sont codées et compilées (envise #error "truc" dans les fichiers .cpp suspects)

    Vérifie aussi si toutes les bibliothèques utilisées sont dans le chemin de linkage.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    merci
    voila ce qui sorte après nm de libTkLayout.so
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     morad@linux-nzlc:~/Musique/workdir/layout/analyze> nm --undefined-only  ../../library/tklibs/lib/libTkLayout.so 
             w _ITM_deregisterTMCloneTable
             w _ITM_registerTMCloneTable
             w _Jv_RegisterClasses
             U _Unwind_Resume@@GCC_3.0
             U _ZN11FullTracker8instanceEv
             U _ZN11RingedLayer7addDetsEN9__gnu_cxx17__normal_iteratorIPP7DetUnitSt6vectorIS3_SaIS3_EEEES8_
             U _ZN11RingedLayerD1Ev
             U _ZN12CompositeDet5clearEv
             U _ZN12DetUnitGluer4glueEN9__gnu_cxx17__normal_iteratorIPP7DetUnitSt6vectorIS3_SaIS3_EEEES8_S8_S8_
             U _ZN12GenexceptionC1ERKSs
             U _ZN12GenexceptionD1Ev
             U _ZN13TkDetTypeName9shortNameERK7DetType
             U _ZN14BarrelDetLayerD2Ev
             U _ZN14FixTIDTopology18recreateTopologiesEv
             U _ZN14FixTIDTopologyC1Ev
             U _ZN15ForwardDetLayer10initializeEv
             U _ZN15ForwardDetLayer11setPositionERK11Point3DBaseIf9GlobalTagERK10TkRotationIfE
             U _ZN15ForwardDetLayer14computeSurfaceEv
             U _ZN15ForwardDetLayer4moveERK12Vector3DBaseIf9GlobalTagE
             U _ZN15ForwardDetLayer6rotateERK10TkRotationIfE
             U _ZN15ForwardDetLayerD2Ev
             U _ZN20RingedBarrelDetLayer10initializeEv
             U _ZN21ClusterizingHistogram10clusterizeEf
             U _ZN21ClusterizingHistogram4fillEf
             U _ZN21ClusterizingHistogramC1Eiff
             U _ZN21ClusterizingHistogramD1Ev
             U _ZN21RingedForwardDetLayer10initializeEv
             U _ZN22BaseSimpleConfigurable8rawValueERKSs
             U _ZN3toaD1Ev
             U _ZN8DetBladeC1EN9__gnu_cxx17__normal_iteratorIPKP3DetSt6vectorIS3_SaIS3_EEEES9_
             U _ZN8DetLayer17setNavigableLayerEP14NavigableLayer
             U _ZNK11RingedLayer4detsEv
             U _ZNK12CompositeDet12measurementsERK24TrajectoryStateOnSurfaceRK10PropagatorRK20MeasurementEstimator
             U _ZNK12CompositeDet21groupedCompatibleDetsERK24TrajectoryStateOnSurfaceRK10PropagatorRK20MeasurementEstimator
             U _ZNK12CompositeDet21groupedCompatibleDetsERK24TrajectoryStateOnSurfaceS2_RK10PropagatorRK20MeasurementEstimator
             U _ZNK12CompositeDet8detUnitsEv
             U _ZNK15ForwardDetLayer10compatibleERK24TrajectoryStateOnSurfaceRK10PropagatorRK20MeasurementEstimator
             U _ZNK15ForwardDetLayer14compatibleDetsERK24TrajectoryStateOnSurfaceRK10PropagatorRK20MeasurementEstimator
             U _ZNK15ForwardDetLayer7surfaceEv
             U _ZNK3toaclERKi
             U _ZNK8DetLayer10nextLayersE20PropagationDirection
             U _ZNK8DetLayer10nextLayersERK19FreeTrajectoryState20PropagationDirection
             U _ZNK8DetLayer16fastMeasurementsERK24TrajectoryStateOnSurfaceS2_RK10PropagatorRK20MeasurementEstimator
             U _ZNK8DetLayer19groupedMeasurementsERK24TrajectoryStateOnSurfaceRK10PropagatorRK20MeasurementEstimator
             U _ZNK8DetLayer19groupedMeasurementsERK24TrajectoryStateOnSurfaceS2_RK10PropagatorRK20MeasurementEstimator
             U _ZNK8DetLayer7recHitsERK24TrajectoryStateOnSurface
             U _ZNK8DetLayer7recHitsEv
             U _ZNKSs7compareEPKc@@GLIBCXX_3.4
             U _ZNKSt5ctypeIcE13_M_widen_initEv@@GLIBCXX_3.4.11
             U _ZNSo3putEc@@GLIBCXX_3.4
             U _ZNSo5flushEv@@GLIBCXX_3.4
             U _ZNSo9_M_insertIdEERSoT_@@GLIBCXX_3.4.9
             U _ZNSo9_M_insertImEERSoT_@@GLIBCXX_3.4.9
             U _ZNSolsEi@@GLIBCXX_3.4
             U _ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4
             U _ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
             U _ZNSs6appendEPKcj@@GLIBCXX_3.4
             U _ZNSs6appendERKSs@@GLIBCXX_3.4
             U _ZNSs6assignEPKcj@@GLIBCXX_3.4
             U _ZNSs6assignERKSs@@GLIBCXX_3.4
             U _ZNSs7reserveEj@@GLIBCXX_3.4
             U _ZNSsC1EPKcRKSaIcE@@GLIBCXX_3.4
             U _ZNSsC1ERKSs@@GLIBCXX_3.4
             U _ZNSsD1Ev@@GLIBCXX_3.4
             U _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCXX_3.4
             U _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCXX_3.4
             U _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCXX_3.4
             U _ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCXX_3.4
             U _ZNSt6localeC1Ev@@GLIBCXX_3.4
             U _ZNSt6localeD1Ev@@GLIBCXX_3.4
             U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
             U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
             U _ZNSt8ios_baseC2Ev@@GLIBCXX_3.4
             U _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCXX_3.4
             U _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCXX_3.4
             U _ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCXX_3.4
             U _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@@GLIBCXX_3.4.9
             U _ZSt16__throw_bad_castv@@GLIBCXX_3.4
             U _ZSt17__throw_bad_allocv@@GLIBCXX_3.4
             U _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
             U _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
             U _ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@@GLIBCXX_3.4
             U _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@@GLIBCXX_3.4
             U _ZSt20__throw_length_errorPKc@@GLIBCXX_3.4
             U _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@@GLIBCXX_3.4
             U _ZSt4cerr@@GLIBCXX_3.4
             U _ZSt4cout@@GLIBCXX_3.4
             U _ZSt9terminatev@@GLIBCXX_3.4
             U _ZTI12Genexception
             U _ZTI14BarrelDetLayer
             U _ZTI15ForwardDetLayer
             U _ZTI8DetLayer
             U _ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
             U _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
             U _ZTV11RingedLayer
             U _ZTV20RingedBarrelDetLayer
             U _ZTV21RingedForwardDetLayer
             U _ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
             U _ZTVN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3
             U _ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3
             U _ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCXX_3.4
             U _ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
             U _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
             U _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCXX_3.4
             U _ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCXX_3.4
             U _ZdlPv@@GLIBCXX_3.4
             U _ZlsRSo4Part
             U _ZlsRSo6Module
             U _Znwj@@GLIBCXX_3.4
             U __cxa_allocate_exception@@CXXABI_1.3
             U __cxa_atexit@@GLIBC_2.1.3
             U __cxa_begin_catch@@CXXABI_1.3
             U __cxa_end_catch@@CXXABI_1.3
             w __cxa_finalize@@GLIBC_2.1.3
             U __cxa_free_exception@@CXXABI_1.3
             U __cxa_guard_abort@@CXXABI_1.3
             U __cxa_guard_acquire@@CXXABI_1.3
             U __cxa_guard_release@@CXXABI_1.3
             U __cxa_pure_virtual@@CXXABI_1.3
             U __cxa_rethrow@@CXXABI_1.3
             U __cxa_throw@@CXXABI_1.3
             U __dynamic_cast@@CXXABI_1.3
             w __gmon_start__
             U __gxx_personality_v0@@CXXABI_1.3
             U atan2f@@GLIBC_2.0
             U fmod@@GLIBC_2.0
             U fmodf@@GLIBC_2.0
             U memcmp@@GLIBC_2.0
             U memmove@@GLIBC_2.0
             w pthread_cancel
             U sqrtf@@GLIBC_2.0
             U strlen@@GLIBC_2.0
    morad@linux-nzlc:~/Musique/workdir/layout/analyze> FixTIDTopology:
    tous les bibliothèque sont inclus avec le bon chemin j'ai l'intuition qu'il est nécessaire d'inclure une bibliothèque propre au opensuse puisque ce code est bien marché sur OS-X mais je sais pas laquelle

  12. #12
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 187
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 187
    Points : 17 135
    Points
    17 135
    Par défaut
    Dans ce cas, ca a probablement pour cause un problème de chemin.
    Vérifie que le fameux "../../library/tklibs/lib/" soit bien "~/Musique/workdir/library/tklibs/lib"
    Si ce n'est pas le cas, c'est là ton problème.
    Sinon, je ne sais pas que te dire.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    j'ai trouvé une point pour résoudre ce problème mais j'ai pas encore arriver à résoudre tous qui non définis http://forums.macg.co/unix-linux-and...l#post12529130

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Points : 1
    Points
    1
    Par défaut
    s'il vous plaît je suis entraîne recompiler pour link les bibliothèque j'ai rencontré un problème pour opensuse le compilateur gcc il cherche en première temps les includes avant d'aller de savoir dans qu'il point il aurais besoin ces includes ,par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
     #ifndef TimingREPORT_H
    #define TimingREPORT_H
    //
    //
    //
    //  V 1.1  01/09/2000
    //    Fast timing on Pentium
    //    on/off control introduced
    //    fixed format output
    //  V 1.2  21/02/2001
    //    cpu time added
    //    not thread safe yet...
    
    #include <string>
    
    #ifndef CMS_NO_HASH_MAP
    #include <hash_map>
    #include "Utilities/GenUtil/interface/stringhash.h"
    #else
    #include <map>
    #endif
    
    #include<iosfwd>
    
    #include "Utilities/Notification/interface/BaseEvent.h"
     #include "CommonDet/BasicDet/interface/AlignmentPositionError.h"
    
    #include "Utilities/GenUtil/interface/CMSTimers.h"
    
    /*  a class to manage Timing
    **/
    class TimingReport {
    public:
      typedef BaseEvent< std::pair<double,double> > ItemObserver;
    
      class Item {
        typedef BaseEvent< std::pair<double,double> > MyObserver;
      public:
        Item() : on(true), cpuon(true), counter(0), o(0){}
        Item & switchOn(bool ion) {on=ion; return *this;} 
        Item & switchCPU(bool ion) {cpuon=ion; return *this;} 
        void start() { if (on) {counter++; if (cpuon) cpuwatch.start(); stopwatch.start(); }}
        void stop(){ 
          if (on) {
    	stopwatch.stop(); 
    	if (cpuon) cpuwatch.stop();
    	if (active()) return; 
    	if (o) (*o)(std::pair<double,double>(stopwatch.lap().seconds(),
    					cpuwatch.lap().seconds()));
          }
        }
      public:
        bool active() const { return stopwatch.running();}
        void setObs(MyObserver * io) { o=io;}
        double realsec() const;
        double realticks() const;
        double cpusec() const;
      public:
        bool on;
        bool cpuon;
        int counter;
        StopWatch stopwatch;
        CPUWatch cpuwatch;
        MyObserver * o;
    
      };
    
    public:
      static TimingReport * current();
    
    protected:
    
    #ifndef CMS_NO_HASH_MAP
      typedef hash_map< std::string, Item, hash<std::string>, std::equal_to<std::string> > SMAP; 
    #else
      typedef std::map< std::string, Item, std::less<std::string> > SMAP;
    #endif
    
      TimingReport();
    
    public:
      ~TimingReport();
    
      ///
      void dump(std::ostream & co, bool active=false);
    
      /// report in ticks
      bool & inTicks() { return inTicks_;}
    
      /// switch all on
      void switchOn(bool ion);
    
      /// switch one ion
      void switchOn(const std::string& name, bool ion) {
        registry[name].switchOn(ion);
      }
    
      void start(const std::string& name) {
        if(on) registry[name].start();
      }
      void stop(const std::string& name) {
        if (on) registry[name].stop();
      }
      
      Item & operator[](const std::string& name) {
        SMAP::iterator p = registry.find(name);
        if (p!=registry.end()) return (*p).second;
        return make(name);
      }
      
      const Item & operator[](const std::string& name) const {
        SMAP::const_iterator p = registry.find(name);
        if (p!=registry.end()) return (*p).second;
        return const_cast<TimingReport*>(this)->make(name);
      }
    
      Item & make(const std::string& name) {
        return registry[name].switchOn(on);
      }
    
      const bool & isOn() const { return on;} 
    
    private:
      
      bool on;
      bool inTicks_;
      SMAP registry;
    
    
    };
    
    /** a class to time a "scope" to be used as a "Sentry".
    Just create a TimeMe object giving it a name;
    exiting the scope the object will be deleted;
    the constuctor starts the timing.
    the destructor stops it.
     */
    class TimeMe{
    
    public:
       ///
      explicit TimeMe(const std::string& name, bool cpu=true) :
        item((*TimingReport::current())[name]) {
        item.switchCPU(cpu);
        item.start();
      }
    
      explicit TimeMe(TimingReport::Item & iitem, bool cpu=true) :
        item(iitem) {
        item.switchCPU(cpu);
        item.start();
      }
    
      std::pair<double,double> lap() const { 
        return std::pair<double,double>(item.stopwatch.lap().seconds(),
    			       item.cpuwatch.lap().seconds());
      }
     
      ///
      ~TimeMe() {
        item.stop();
      }
      
    private:
      
      TimingReport::Item & item;
      
    };
    
    
    #endif
    alors il me demande de vérifier le chemin de #include "CommonDet/BasicDet/interface/AlignmentPositionError.h" même si on est plus besoin de ce fichier ma question :est ce qu'il ya une FLAGS pour le réorienter

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2011, 12h53
  2. Problème avec une librairie open source sous myEclipse
    Par scaryfan dans le forum EDI et Outils pour Java
    Réponses: 0
    Dernier message: 01/09/2009, 20h40
  3. Réponses: 7
    Dernier message: 04/06/2008, 19h22
  4. Création de "sous-librairie" dans une librairie SAS
    Par domalin dans le forum SAS Base
    Réponses: 4
    Dernier message: 16/05/2008, 09h40
  5. Problème au link : librairie dans une librairie
    Par jbwan dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 15/04/2008, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo