HEllo, I still have a problem to call fortran routine. I'm doing everything like in the first method in the http://root.cern.ch/root/HowtoCERNLIB.html my files: //Vertexfunctions.h #ifndef Vertexfunction_H #define Vertexfunction_H #if !defined (__CINT__) || defined (__MAKECINT__) #include "Rtypes.h" #endif extern "C" Int_t ctvmft_(Int_t *iflun, Int_t *iflev, Int_t *ierr); #endif //VertexLinkDef.h #ifdef __CINT__ #pragma link off all typedefs; #pragma link off all globals; #pragma link off all functions; #pragma link off all classes; #pragma link C++ function ctvmft_; #endif I execute the shhel script command: rootcint -f Vertex.cxx -c Vertexfunctions.h VertexLinkDef.h My main program // rootVertex.cxx #include "TROOT.h" #include "TRint.h" #include "Vertexfunctions.h" TROOT root("Rint","The ROOT Interactive Interface"); int main(int argc, char **argv) { if (0){ Int_t iflun=0; Int_t iflev=0; Int_t ierr=0; prinft("ctvmft(iflun,iflev,ierr)=%g\n", ctvmft_(&iflun,&iflev,&ierr); } // Create an interactive ROOT application TRint *theApp = new TRint("Rint", &argc, argv, 0, 0); // and enter the event loop... theApp->Run(); delete theApp; return 0; } and after make rootVertex ++ -O -Wall -fPIC -D_REENTRANT -I/usr/local/root/pro/root/include -c rootVertex.cxx rootVertex.cxx: In function `int main(int, char **)': rootVertex.cxx:36: parse error before `;' make: *** [rootVertex.o] Error 1 and if I delete part of the program: // rootVertex.cxx #include "TROOT.h" #include "TRint.h" #include "Vertexfunctions.h" TROOT root("Rint","The ROOT Interactive Interface"); int main(int argc, char **argv) { /* if (0){ Int_t iflun=0; Int_t iflev=0; Int_t ierr=0; prinft("ctvmft(iflun,iflev,ierr)=%g\n", ctvmft_(&iflun,&iflev,&ierr); } */ // Create an interactive ROOT application TRint *theApp = new TRint("Rint", &argc, argv, 0, 0); // and enter the event loop... theApp->Run(); delete theApp; return 0; } $ make rootVertex g++ -O -Wall -fPIC -D_REENTRANT -I/usr/local/root/pro/root/include -c rootVertex.cxx cc -O rootVertex.o -o rootVertex rootVertex.o: In function `main': rootVertex.o(.text+0x1b): undefined reference to `TStorage::ObjectAlloc(unsigned int)' rootVertex.o(.text+0x38): undefined reference to `TRint::TRint(char const *, int *, char **, void *, int, unsigned char)' rootVertex.o(.text+0x7d): undefined reference to `TObject::operator delete(void *)' rootVertex.o: In function `global destructors keyed to main': rootVertex.o(.text+0xc1): undefined reference to `TROOT::~TROOT(void)' rootVertex.o: In function `global constructors keyed to main': rootVertex.o(.text+0xf7): undefined reference to `TROOT::TROOT(char const *, char const *, void (**)(void))' collect2: ld returned 1 exit status make: *** [rootVertex] Error 1 rm rootVertex.o I don't understand where is a problem. If you find what I'm doing wrong please sent me a massage. Best regards, Jarek Nowak
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET