Dear Christian, Damir, Jiri Thank you all for your help. I followed some of your suggestions and could finally solve the problem. My first trial: [strato@localhost tx]$ echo $LD_LIBRARY_PATH :/home/strato/rt/root/lib [strato@localhost tx]$ export LD_LIBRARY_PATH=/home/strato/rt/root/lib [strato@localhost tx]$ echo $LD_LIBRARY_PATH /home/strato/rt/root/lib [strato@localhost tx]$ gmake -f Makefile4DMS Generating dictionary DMSDict... rootcint: error while loading shared libraries: libCint.so: cannot load shared object file: No such file or directory gmake: *** [DMSDict.cxx] Error 127 My second trial: [strato@localhost tx]$ rootcint -f DMSDict.cxx -c DMS.h DMSLinkDef.h [strato@localhost tx]$ gmake -f Makefile4DMS g++ -O -Wall -fPIC -fsigned-char -I/usr/X11/include -I/home/strato/rt/root/include -c DMSDict.cxx g++ -shared -O DMS.o DMSDict.o -o libDMS.so As you see, rootcint can create the dictionary, and running the makefile again finally creates the library. However, the makefile still did not work. Third trial: I configured root with --enable-rpath and recompiled root. This did not help either. Fourth trial: I added ../root/lib to /etc/ld.so.conf and run ldconfig. This resulted in the following interesting observation: a, for root configured with --disable-rpath everything is now OK! b, for root configured with --enable-rpath I get the same rootcint error as before. It seems that exporting LD_LIBRARY_PATH and/or storing it in the home directory in .bash_profile is not sufficient. You have to store the path in /etc/ld.so.conf. Maybe this should be mentioned in the root manual. Thank you once again for your help. Best regards Christian BTW,this is my makefile: Any comments how to do it better? #--------start makefile------------------- # shell: gmake -f Makefile4DMS # # Copyright (c) 2000 Rene Brun and Fons Rademakers # # Author: Christian Stratowa, 23 March 2002 ARCH = linuxppcegcs CXX = ObjSuf = o SrcSuf = cxx ExeSuf = DllSuf = so OutPutOpt = -o ROOTCFLAGS := $(shell root-config --cflags) ROOTLIBS := $(shell root-config --libs) ROOTGLIBS := $(shell root-config --glibs) ifeq ($(ARCH),linuxegcs) # Linux with egcs (>= RedHat 5.2) CXX = g++ CXXFLAGS = -O -Wall -fPIC LD = g++ LDFLAGS = -O SOFLAGS = -shared endif ifeq ($(ARCH),linuxppcegcs) # MkLinux with egcs/glibc CXX = g++ CXXFLAGS = -O -Wall -fPIC LD = g++ LDFLAGS = -O SOFLAGS = -shared endif CXXFLAGS += $(ROOTCFLAGS) LIBS = $(ROOTLIBS) $(SYSLIBS) GLIBS = $(ROOTGLIBS) $(SYSLIBS) #------------------------------------------------------------------------------ DMSO = DMS.$(ObjSuf) DMSDict.$(ObjSuf) DMSS = DMS.$(SrcSuf) DMSDict.$(SrcSuf) DMSSO = libDMS.$(DllSuf) OBJS = $(DMSO) PROGRAMS = $(DMSSO) #------------------------------------------------------------------------------ .SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf) all: $(PROGRAMS) $(DMSSO): $(DMSO) $(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ clean: @rm -f $(OBJS) core .SUFFIXES: .$(SrcSuf) ### DMS.$(ObjSuf): DMS.h DMSDict.$(SrcSuf): DMS.h DMSLinkDef.h @echo "Generating dictionary DMSDict..." @rootcint -f $@ -c $^ .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) -c $< #---------end makefile--------------- cstrato@EUnet.at wrote: > Dear Damir, Christian and Jiri > > Thank you all for your suggestions, which I will try. > First I will try to set the LD_LIBRARY_PATH again, since I also believe > that this could be the error. However, I was not able to find out > where this variable is stored or should be stored. Do you know where > I can find it? > > Sorrowly, currently I have also a hardware problem, so that I can > turn on my PowerBook only sporadically. So testing will be slow. > > Thank you once again. > Best regards > Christian
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:48 MET