Opened 10 years ago
Last modified 10 years ago
#374 new Bug
Error compiling Delphes
Reported by: | Jason | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | Delphes code | Version: | Delphes 3 |
Keywords: | Cc: |
Description
Hello!
I'm brand new to all of this and am running Cygwin (unix like envir for Windows) version 4.8.3. I downloaded Delphes from this website and followed the appropriate steps, but when I typed in make, I got this output:
Jason@Jason-PC /usr/local/Delphes-3.2.0 $ make >> Compiling classes/DelphesPileUpReader.cc In file included from classes/DelphesPileUpReader.cc:28:0: ./classes/DelphesPileUpReader.h:31:23: fatal error: rpc/types.h: No such file or #include <rpc/types.h> ^ compilation terminated. Makefile:1989: recipe for target 'tmp/classes/DelphesPileUpReader.o' failed make: *** [tmp/classes/DelphesPileUpReader.o] Error 1
Root is installed properly, evidenced by the fact that I can open up cygwin and run root by simply typing the command "root."
I don't know what to do, any help is appreciated! Thanks!
- Jason
Change History (7)
comment:2 by , 10 years ago
Thank you for your response!
That didn't seem to work, but I fixed it by just moving the "rpc" directory to "usr/include" instead.
However, now I am having this issue with the compiliation:
>> Compiling external/tcl/panic.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclAlloc.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclAsync.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclBasic.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclCkalloc.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C external/tcl/tclCkalloc.c: In function ‘Tcl_Free’: external/tcl/tclCkalloc.c:765:9: warning: implicit declaration of function ‘Tclp Free’ [-Wimplicit-function-declaration] TclpFree(ptr); ^ >> Compiling external/tcl/tclCmdAH.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclCmdIL.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C external/tcl/tclCmdIL.c: In function ‘DictionaryCompare’: external/tcl/tclCmdIL.c:2712:17: warning: array subscript has type ‘char’ [-Wcha r-subscripts] diff = UCHAR(tolower(*left)) - UCHAR(*right); ^ >> Compiling external/tcl/tclCmdMZ.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclCompExpr.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclCompile.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclExecute.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C In file included from external/tcl/tclExecute.c:15:0: external/tcl/tclExecute.c: In function ‘TclExecuteByteCode’: external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclExecute.c:750:15: note: in expansion of macro ‘TclGetStringFromO bj’ bytes = TclGetStringFromObj(valuePtr, &length); ^ external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclExecute.c:768:12: note: in expansion of macro ‘TclGetStringFromO bj’ bytes = TclGetStringFromObj(valuePtr, &length); ^ external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclExecute.c:934:12: note: in expansion of macro ‘TclGetStringFromO bj’ bytes = TclGetStringFromObj(objv[i], &length); ^ external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclExecute.c:1916:12: note: in expansion of macro ‘TclGetStringFrom Obj’ s1 = TclGetStringFromObj(valuePtr, &length); ^ external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclExecute.c:1917:12: note: in expansion of macro ‘TclGetStringFrom Obj’ s2 = TclGetStringFromObj(value2Ptr, &length); ^ >> Compiling external/tcl/tclGet.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclHash.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclHistory.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclIndexObj.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclLink.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclListObj.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C In file included from external/tcl/tclListObj.c:16:0: external/tcl/tclListObj.c: In function ‘SetListFromAny’: external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclListObj.c:892:14: note: in expansion of macro ‘TclGetStringFromO bj’ string = TclGetStringFromObj(objPtr, &length); ^ >> Compiling external/tcl/tclNamesp.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclObj.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C In file included from external/tcl/tclObj.c:15:0: external/tcl/tclObj.c: In function ‘SetBooleanFromAny’: external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclObj.c:1023:14: note: in expansion of macro ‘TclGetStringFromObj’ string = TclGetStringFromObj(objPtr, &length); ^ external/tcl/tclObj.c: In function ‘SetDoubleFromAny’: external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclObj.c:1401:14: note: in expansion of macro ‘TclGetStringFromObj’ string = TclGetStringFromObj(objPtr, &length); ^ external/tcl/tclObj.c: In function ‘SetIntFromAny’: external/tcl/tclInt.h:1804:21: warning: the address of ‘length’ will always eval uate as ‘true’ [-Waddress] ((lengthPtr)? \ ^ external/tcl/tclObj.c:1709:14: note: in expansion of macro ‘TclGetStringFromObj’ string = TclGetStringFromObj(objPtr, &length); ^ >> Compiling external/tcl/tclParse.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C >> Compiling external/tcl/tclPosixStr.c cc1: warning: command line option ‘-Woverloaded-virtual’ is valid for C++/ObjC++ but not for C external/tcl/tclPosixStr.c: In function ‘Tcl_SignalId’: external/tcl/tclPosixStr.c:990:2: error: duplicate case value case SIGPWR: return "SIGPWR"; ^ external/tcl/tclPosixStr.c:978:2: error: previously used here case SIGLOST: return "SIGLOST"; ^ external/tcl/tclPosixStr.c: In function ‘Tcl_SignalMsg’: external/tcl/tclPosixStr.c:1122:2: error: duplicate case value case SIGPWR: return "power-fail restart"; ^ external/tcl/tclPosixStr.c:1110:2: error: previously used here case SIGLOST: return "resource lost"; ^ Makefile:2019: recipe for target 'tmp/external/tcl/tclPosixStr.o' failed make: *** [tmp/external/tcl/tclPosixStr.o] Error 1
comment:3 by , 10 years ago
Looks like external/tcl/tclPosixStr.c does not contain any functions used by Delphes and can be safely removed. I've just submitted this modification to the Delphes code repository.
You can download the latest snapshot of the Delphes code repository from
https://github.com/delphes/delphes/archive/master.zip
or
comment:4 by , 10 years ago
Thank you for that. Unfortunately, fixing that brought on another problem:
>> Building libDelphesNoFastJet.dll tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x2ef): undefine d reference to `xdrmem_create' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x311): undefine d reference to `xdrmem_create' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x3cd): undefine d reference to `xdrstdio_create' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x3ff): undefine d reference to `xdr_hyper' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x4ec): undefine d reference to `xdr_opaque' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x6f0): undefine d reference to `xdr_int' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x703): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x716): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x729): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x73c): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x74f): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x762): more und efined references to `xdr_float' follow tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x7e0): undefine d reference to `xdr_hyper' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x815): undefine d reference to `xdr_int' tmp/classes/DelphesPileUpReader.o:DelphesPileUpReader.cc:(.text+0x8a4): undefine d reference to `xdr_opaque' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x2f6): undefine d reference to `xdrmem_create' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x318): undefine d reference to `xdrmem_create' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x3d4): undefine d reference to `xdrstdio_create' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x614): undefine d reference to `xdr_int' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x627): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x63a): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x64d): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x660): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x673): undefine d reference to `xdr_float' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x686): more und efined references to `xdr_float' follow tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x77e): undefine d reference to `xdr_int' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x79d): undefine d reference to `xdr_opaque' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x7af): undefine d reference to `xdr_hyper' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x83d): undefine d reference to `xdr_opaque' tmp/classes/DelphesPileUpWriter.o:DelphesPileUpWriter.cc:(.text+0x84c): undefine d reference to `xdr_hyper' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xfd): undefined reference to `xdr_opaque' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x11f): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x156): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x1ef): undefine d reference to `xdr_string' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x288): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x455): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x480): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x4f8): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x523): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x55d): undefine d reference to `xdrstdio_create' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x58e): undefine d reference to `xdr_string' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x6ae): undefine d reference to `xdr_string' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x779): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x7c4): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x7ef): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x82a): undefine d reference to `xdr_string' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x933): undefine d reference to `xdr_string' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x945): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x957): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x9e9): undefine d reference to `xdr_opaque' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xb96): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xba8): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xbba): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xbcc): undefine d reference to `xdr_u_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xbe9): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xccc): undefine d reference to `xdrmem_create' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xcf8): undefine d reference to `xdrmem_create' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xd24): undefine d reference to `xdrmem_create' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xd57): undefine d reference to `xdrmem_create' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xd89): undefine d reference to `xdrmem_create' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xdba): more und efined references to `xdrmem_create' follow tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xde3): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xdfa): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe11): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe21): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe38): undefine d reference to `xdr_int' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe48): more und efined references to `xdr_int' follow tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe5f): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe6f): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe7f): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe8f): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xe9f): undefine d reference to `xdr_double' tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0xeb6): more und efined references to `xdr_double' follow tmp/classes/DelphesSTDHEPReader.o:DelphesSTDHEPReader.cc:(.text+0x10a6): undefin ed reference to `xdr_int' collect2: error: ld returned 1 exit status Makefile:1869: recipe for target 'libDelphesNoFastJet.dll' failed make: *** [libDelphesNoFastJet.dll] Error 1
Thank you so much for your help so far!
-- Jason
comment:5 by , 10 years ago
These errors are directly related to the initial problem.
You need to link Delphes with the libtirpc library 'usr/lib/libtirpc.dll.a'.
Could you try to modify the DELPHES_LIBS variable in Delphes Makefile and add '-ltirpc' at the end of the line
DELPHES_LIBS = $(shell $(RC) --libs) -lEG $(SYSLIBS) -ltirpc
comment:6 by , 10 years ago
Oops, I hadn't edited the makefile for the latest snapshot of code that you posted. That seemed to thwart the issue, but now I'm getting the error:
Compiling external/fastjet/Error.cc external/fastjet/Error.cc:38:22: fatal error: execinfo.h: No such file or directory #include <execinfo.h> ^ compilation terminated. Makefile:1987: recipe for target 'tmp/external/fastjet/Error.o' failed make: *** [tmp/external/fastjet/Error.o] Error 1
As far as I have read, execinfo.h is part of GNU C library, which is not available for cygwin. If I were to remove it from the makefile would it interfere with any of the Delphes functions?
comment:7 by , 10 years ago
I don't think that it's safe to remove files from the FastJet package.
You can try to build FastJet independently of Delphes following the FastJet Quick Start guide:
http://fastjet.fr/quickstart.html
If it builds on your system then we can check how to build it within Delphes.
As far as I know, building ROOT on Cygwin is not supported by the ROOT developers.
As Delphes depends on ROOT, I never tested it on this platform.
I'd say that the most comfortable way to run ROOT under MS Windows is to install a Linux virtual machine. Personally, I'm using VirtualBox with headless (w/o any graphics desktop environment) Ubuntu and Scientific Linux installations.
Googling for "rpc/types.h cygwin" shows that this header file comes with the libtirpc-devel package and the path to this header file is
/usr/include/tirpc/rpc/types.h
Could you try to install libtirpc-devel and append
-I/usr/include/tirpc
to the GXXFLAGS variable in Delphes Makefile: