Open padsley opened 4 years ago
My fix (which fixed the first problem in m2r::process_args) was to change the line:
what += *iarg; what += "\'";
at 287 in mid2root.cxx to
what += iarg->c_str(); what += "\'";
This seemed to fix the problem.
However, there are now errors of the form:
/home/padsley/codes/dragon/lib/libDragon.so: undefined reference to `TString::TString(std::string const&)'
/home/padsley/codes/dragon/lib/libDragon.so: undefined reference to `TROOT::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**, bool)'
The first one of these is another failed TString
assignment, I think. I can't currently find it amongst the various input files to libDragon.so, however.
The TROOT::RegisterModule
error is likely due too the changed method for declaration of these objects. Acceptable methods are apparently:
root [0] TROOT::RegisterModule(
void RegisterModule(const char* modulename, const char** headers, const char** includePaths, const char* payLoadCode, const char* fwdDeclCode, void(*)() triggerFunc, const TROOT::FwdDeclArgsToKeepCollection_t& fwdDeclsArgToSkip, const char** classesHeaders, bool hasCxxModule = false)
(I'm like 90% sure that these problems are due to my having ROOT6 but changing ROOT versions is problematic as i need some ROOT6 functionality for K600 analysis.)
With ROOT 6:
It looks like that way of defining a TString might not exist in more modern ROOT versions:
I'm going to try a fix for it.