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:
	
		
 cette étape est bien passé j'ai obtenu les *.so comme suit :
	
	
	
		
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 makefile j'ai comme une flags :
	
	
	
		
mais avec ça après l’exécution j'obtiens une erreur :
***************************************
 
	
	
	
		
*****************************************
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
	
		
			
		
		
	
				
			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:
		Bloc de code:
	
	CXXFLAGS = -g -O2 -fPIC -Wall -ldl -D_GNU_SOURCE ,CXX := g++ et   $(CXX)-shared -o $(LIBNAME)   $(CLIBLIB) $(OUT_OBJS)
	
		Bloc de code:
	
	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
	
		Bloc de code:
	
	CXX = g++ et $(CXX) -O2 -g -fopenmp  $(CILIBLAY)  $(OUT_OBJS)  $(OBJDIR)/$(MAIN_PROG).o -o $(MAIN_PROG).exe
	***************************************
		Bloc de code:
	
	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<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> [/COLOR]
	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
			
				Dernière édition par un modérateur: