LArbys / larlitecv

Analysis processor framework for working with LArLite and LArCV data
1 stars 0 forks source link

error building StopMu dictionary on nevis cluster #2

Closed twongjirad closed 7 years ago

twongjirad commented 7 years ago

https://gist.github.com/twongjirad/c946b7361a5117c36bb3917fae09014a

<< compiling StopMuDict.cxx >> /usr/lib/../lib64/crt1.o: In function _start': (.text+0x20): undefined reference tomain' /tmp/ccaQimWI.o: In function GenerateInitInstance': /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:61: undefined reference toROOT::DefineBehavior(void, void)' /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:61: undefined reference to ROOT::TGenericClassInfo::TGenericClassInfo(char const*, int, char const*, int, ROOT::TInitBehavior const*, TClass* (*)(), int)' /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:61: undefined reference toROOT::TGenericClassInfo::~TGenericClassInfo()' /tmp/ccaQimWI.o: In function (anonymous namespace)::TriggerDictionaryInitialization_libLArliteCVStopMu_Impl()': /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:137: undefined reference toTROOT::RegisterModule(char const, char const, char const, char const, char const, void ()(), std::vector<std::pair<std::string, int>, std::allocator<std::pair<std::string, int> > > const&, char const)' /tmp/ccaQimWI.o: In function TriggerDictionaryInitialization_libLArliteCVStopMu_Impl': /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:137: undefined reference toTROOT::RegisterModule(char const, char const, char const, char const, char const, void ()(), std::vector<std::pair<std::string, int>, std::allocator<std::pair<std::string, int> > > const&, char const)' /tmp/ccaQimWI.o: In function larlitecv::ROOT::larlitecv_Dictionary()': /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:71: undefined reference toROOT::TGenericClassInfo::GetClass()' /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:71: undefined reference to ROOT::TGenericClassInfo::GetClass()' /tmp/ccaQimWI.o: In functionlarlitecv::ROOT::GenerateInitInstance()': /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:61: undefined reference to ROOT::DefineBehavior(void*, void*)' /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:61: undefined reference toROOT::TGenericClassInfo::TGenericClassInfo(char const, int, char const, int, ROOT::TInitBehavior const, TClass (*)(), int)' /a/data/amsterdam/tmw23/sw/tagger/larlitecv/build/StopMu/StopMuDict.cxx:61: undefined reference to ROOT::TGenericClassInfo::~TGenericClassInfo()' /tmp/ccaQimWI.o: In function__static_initialization_and_destruction_0': /usr/nevis/root-6.04.00/include/TVersionCheck.h:34: undefined reference to `TVersionCheck::TVersionCheck(int)' collect2: error: ld returned 1 exit status

twongjirad commented 7 years ago

Ugh. A stupid bug. Because OpenCV was not setup, the line in app/StopMu/GNUMakefile

INCFLAGS += -I$(OPENCV_INCDIR)

produced

-I    ...

in the command to make the ROOT dictionary. (Notice the lack of ..) This apparently will break everything. Now the OPENCV related commands in the GNUMakefile are inside a logic expression to check for value

ifeq ($(LARCV_OPENCV),1)
...
endif