Skip to content

StripEnergyThresholdFinder for per-strip slow and fast threshold extraction with diagnostics#166

Draft
JarredMRoberts wants to merge 2 commits into
cositools:develop/emfrom
JarredMRoberts:feature/strip-threshold-finder
Draft

StripEnergyThresholdFinder for per-strip slow and fast threshold extraction with diagnostics#166
JarredMRoberts wants to merge 2 commits into
cositools:develop/emfrom
JarredMRoberts:feature/strip-threshold-finder

Conversation

@JarredMRoberts

Copy link
Copy Markdown

Adds a standalone application, StripEnergyThresholdFinder, for computing per-strip slow and fast energy thresholds. Slow thresholds are determined from ADC spectra using a noise peak and trough method, while fast thresholds are determined from dt0/dt1 timing crossover. The tool reads calibrated HDF5 data via MModuleLoaderMeasurementsHDF, applies strip mapping and energy calibration from a YAML configuration, and produces ROOT diagnostic outputs (energy spectra with thresholds, dt0 vs dt1 per strip, and threshold distributions) along with CSV export files. The implementation is self-contained under apps/ and does not modify existing modules. Tested on COSI datasets with consistent threshold behavior and expected diagnostic results. Target branch is develop/em.

@JarredMRoberts

Copy link
Copy Markdown
Author

I still need to fix all of the code style issues and work on some optimizations to speed the code up a bit.

@fhagemann

Copy link
Copy Markdown

Is this different from #143 or making #143 obsolete?

Comment on lines +77 to +89
struct StripKey
{
int det;
char side;
int strip;

bool operator<(const StripKey& o) const
{
if(det!=o.det) return det<o.det;
if(side!=o.side) return side<o.side;
return strip<o.strip;
}
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you not reuse the code from MStripMap.cxx here?

Comment on lines +97 to +189
class EnergyCalHelper
{
public:

struct Coeff
{
double c0=0;
double c1=0;
double c2=0;
double c3=0;
};

bool Load(const string& fileName,int nDet=64,int nStrip=65)
{
m_NDet=nDet;
m_NStrip=nStrip;

m_Coeffs.resize(m_NDet);

for(int d=0;d<m_NDet;d++)
{
m_Coeffs[d].resize(2);

for(int s=0;s<2;s++)
m_Coeffs[d][s].resize(m_NStrip);
}

ifstream in(fileName);

if(!in)
{
cout<<"Unable to open calibration file "<<fileName<<endl;
return false;
}

string line;

while(getline(in,line))
{
if(line.empty()) continue;

stringstream ss(line);

string tag;
ss>>tag;

if(tag!="CM") continue;

string unused;
int det=-1;
int strip=-1;
string side;
string order;

ss>>unused>>det>>strip>>side>>order;

if(det<0||det>=m_NDet) continue;
if(strip<0||strip>=m_NStrip) continue;

int sideInt=(side=="l")?0:1;

Coeff c;

if(order=="poly1zero")
ss>>c.c1;
else if(order=="poly1")
ss>>c.c0>>c.c1;
else if(order=="poly2")
ss>>c.c0>>c.c1>>c.c2;
else
ss>>c.c0>>c.c1>>c.c2>>c.c3;

m_Coeffs[det][sideInt][strip]=c;
}

return true;
}

double ADCToEnergy(int det,char side,int strip,double adc) const
{
int sideInt=(side=='l')?0:1;
const Coeff& c=m_Coeffs[det][sideInt][strip];

return c.c3*pow(adc,3)+c.c2*pow(adc,2)+c.c1*adc+c.c0;
}

private:

int m_NDet;
int m_NStrip;

vector<vector<vector<Coeff>>> m_Coeffs;
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This essentially does what MModuleEnergyCalibration does.
Can you create a MModuleEnergyCalibration variable in this app and use its functions here to avoid code duplication and keep the code for this app short?

Comment on lines +195 to +251
class TACCalHelper
{
public:

struct Coeff
{
double slope = 0;
double offset = 0;
};

bool Load(const string& fileName)
{
ifstream in(fileName);
if(!in)
{
cout<<"Failed to open TAC calibration file: "<<fileName<<endl;
return false;
}

string line;
getline(in,line); // skip header

while(getline(in,line))
{
if(line.empty()) continue;

stringstream ss(line);

int strip_id, det, side, strip;
double slope, slope_err, offset, offset_err;

ss >> strip_id >> det >> side >> strip
>> slope >> slope_err >> offset >> offset_err;

char sideChar = (side==0) ? 'l' : 'h';

StripKey key{det, sideChar, strip};

m_Coeffs[key] = {slope, offset};
}

return true;
}

double TACToEnergy(int det, char side, int strip, double tac) const
{
StripKey key{det, side, strip};

auto it = m_Coeffs.find(key);
if(it == m_Coeffs.end()) return 0;

return it->second.slope * tac + it->second.offset;
}

private:
map<StripKey, Coeff> m_Coeffs;
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This already exists in MModuleTACcut --> use existing class to avoid code duplication here.

private:

// --- Configuration ---
EnergyCalHelper m_EnergyCal;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
EnergyCalHelper m_EnergyCal;
MModuleEnergyCalibration m_EnergyCal;

#include "MReadOutAssembly.h"
#include "MStripHit.h"
#include "MString.h"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include "MModuleEnergyCalibration.h"
#include "MModuleTACcut.h"
#include "MStripMap.h"



//EnergyCalHelper m_EnergyCal;
TACCalHelper m_EnergyCal_TAC;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a weird name, is Energy intended in this name? I would just call it m_TACCal.. And if it's called m_..., consider making this a (private) member variable of the class -- just like m_EnergyCal

Also: where is this TACCalHelper ever used?

//EnergyCalHelper m_EnergyCal;
TACCalHelper m_EnergyCal_TAC;

if(!m_EnergyCal.Load(m_CalibrationFile.Data()))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MModuleEnergyCalibration has a ReadEnergyCalibrationFile function that you could call here instead:

Suggested change
if(!m_EnergyCal.Load(m_CalibrationFile.Data()))
if (m_EnergyCal.ReadEnergyCalibrationFile(m_CalibrationFile) == false)

EnergyCalHelper m_EnergyCal;
vector<string> m_InputFiles;
MString m_CalibrationFile;
MString m_TACCalibrationFile;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to never be used.

@@ -0,0 +1,2045 @@
/*
* StripEnergyThresholdFinder.cpp

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* StripEnergyThresholdFinder.cpp
* StripEnergyThresholdFinder.cxx

?

Comment on lines +27 to +32
h5c++ -O2 StripEnergyThresholdFinder.cxx -o StripEnergyThresholdFinder \
$(root-config --cflags --libs) \
-I$MEGALIB/include \
-I~/COSItools/nuclearizer/include \
-L$MEGALIB/lib \
-lMEGAlib -lNuclearizer -lyaml-cpp

@fhagemann fhagemann Jun 23, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to do two things to make this compile:

  • First: I had to install the required yaml package sudo apt-get install libyaml-cpp-dev, or I would get this:
    StripEnergyThresholdFinder.cxx:62:10: fatal error: yaml-cpp/yaml.h: No such file or directory
       62 | #include <yaml-cpp/yaml.h>
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[1]: *** [Makefile:34: /home/hagemann/Software/COSItools/megalib/bin/StripEnergyThresholdFinder] Error 1
    make[1]: *** Waiting for unfinished jobs....
    
  • Second, the compile command here only works if COSItools is in your home directory (which it isn't on my laptop, so the compile failed). Update this to:
    Suggested change
    h5c++ -O2 StripEnergyThresholdFinder.cxx -o StripEnergyThresholdFinder \
    $(root-config --cflags --libs) \
    -I$MEGALIB/include \
    -I~/COSItools/nuclearizer/include \
    -L$MEGALIB/lib \
    -lMEGAlib -lNuclearizer -lyaml-cpp
    h5c++ -O2 StripEnergyThresholdFinder.cxx -o StripEnergyThresholdFinder \
    $(root-config --cflags --libs) \
    -I$MEGALIB/include \
    -I$NUCLEARIZER/include \
    -L$MEGALIB/lib \
    -lMEGAlib -lNuclearizer -lyaml-cpp

@fhagemann fhagemann Jun 23, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also: this currently breaks the general make command, because this app cannot be built using the make apps command in the nuclearizer/src/Makefile.

For reference, this is the error message I'm getting.
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `MStripThresholdFinder::ParseCommandLine(int, char**)':
/home/hagemann/Software/COSItools/nuclearizer/apps/StripEnergyThresholdFinder.cxx:432:(.text+0x63a): undefined reference to `YAML::LoadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::TypedBadConversion<int>::~TypedBadConversion()':
/usr/include/yaml-cpp/exceptions.h:247:(.text._ZN4YAML18TypedBadConversionIiED2Ev[_ZN4YAML18TypedBadConversionIiED5Ev]+0x17): undefined reference to `YAML::BadConversion::~BadConversion()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::TypedBadConversion<int>::~TypedBadConversion()':
/usr/include/yaml-cpp/exceptions.h:247:(.text._ZN4YAML18TypedBadConversionIiED0Ev[_ZN4YAML18TypedBadConversionIiED5Ev]+0x17): undefined reference to `YAML::BadConversion::~BadConversion()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::TypedBadConversion<double>::~TypedBadConversion()':
/usr/include/yaml-cpp/exceptions.h:247:(.text._ZN4YAML18TypedBadConversionIdED2Ev[_ZN4YAML18TypedBadConversionIdED5Ev]+0x17): undefined reference to `YAML::BadConversion::~BadConversion()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::TypedBadConversion<double>::~TypedBadConversion()':
/usr/include/yaml-cpp/exceptions.h:247:(.text._ZN4YAML18TypedBadConversionIdED0Ev[_ZN4YAML18TypedBadConversionIdED5Ev]+0x17): undefined reference to `YAML::BadConversion::~BadConversion()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::TypedBadConversion<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::~TypedBadConversion()':
/usr/include/yaml-cpp/exceptions.h:247:(.text._ZN4YAML18TypedBadConversionISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEED2Ev[_ZN4YAML18TypedBadConversionISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEED5Ev]+0x17): undefined reference to `YAML::BadConversion::~BadConversion()'
/usr/bin/ld: /tmp/ccF55MEJ.o:/usr/include/yaml-cpp/exceptions.h:247: more undefined references to `YAML::BadConversion::~BadConversion()' follow
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::Exception::Exception(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:156:(.text._ZN4YAML9ExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4YAML9ExceptionC5ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x48): undefined reference to `vtable for YAML::Exception'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML11InvalidNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4YAML11InvalidNodeC5ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x74): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::InvalidNode::InvalidNode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:233:(.text._ZN4YAML11InvalidNodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4YAML11InvalidNodeC5ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x8a): undefined reference to `vtable for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::Node::Type() const':
/usr/include/yaml-cpp/node/impl.h:84:(.text._ZNK4YAML4Node4TypeEv[_ZNK4YAML4Node4TypeEv]+0x47): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:84:(.text._ZNK4YAML4Node4TypeEv[_ZNK4YAML4Node4TypeEv]+0x4e): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::Node::Scalar[abi:cxx11]() const':
/usr/include/yaml-cpp/node/impl.h:168:(.text._ZNK4YAML4Node6ScalarB5cxx11Ev[_ZNK4YAML4Node6ScalarB5cxx11Ev]+0x48): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:168:(.text._ZNK4YAML4Node6ScalarB5cxx11Ev[_ZNK4YAML4Node6ScalarB5cxx11Ev]+0x4f): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:169:(.text._ZNK4YAML4Node6ScalarB5cxx11Ev[_ZNK4YAML4Node6ScalarB5cxx11Ev]+0x5c): undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::Node::Mark() const':
/usr/include/yaml-cpp/node/impl.h:77:(.text._ZNK4YAML4Node4MarkEv[_ZNK4YAML4Node4MarkEv]+0x5d): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:77:(.text._ZNK4YAML4Node4MarkEv[_ZNK4YAML4Node4MarkEv]+0x64): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML13BadConversionC2ERKNS_4MarkE[_ZN4YAML13BadConversionC5ERKNS_4MarkE]+0x4c): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadConversion::BadConversion(YAML::Mark const&)':
/usr/include/yaml-cpp/exceptions.h:241:(.text._ZN4YAML13BadConversionC2ERKNS_4MarkE[_ZN4YAML13BadConversionC5ERKNS_4MarkE]+0x62): undefined reference to `vtable for YAML::BadConversion'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > YAML::Node::as<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >() const':
/usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_v[_ZNK4YAML4Node2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_v]+0x7c): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_v[_ZNK4YAML4Node2asINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_v]+0x83): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node_ref::begin()':
/usr/include/yaml-cpp/node/detail/node_ref.h:46:(.text._ZNK4YAML4Node5beginEv[_ZNK4YAML4Node5beginEv]+0xb2): undefined reference to `YAML::detail::node_data::begin()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node_ref::end()':
/usr/include/yaml-cpp/node/detail/node_ref.h:51:(.text._ZNK4YAML4Node3endEv[_ZNK4YAML4Node3endEv]+0xb2): undefined reference to `YAML::detail::node_data::end()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `int YAML::Node::as<int>() const':
/usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asIiEET_v[_ZNK4YAML4Node2asIiEET_v]+0x76): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asIiEET_v[_ZNK4YAML4Node2asIiEET_v]+0x7d): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `double YAML::Node::as<double>() const':
/usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asIdEET_v[_ZNK4YAML4Node2asIdEET_v]+0x76): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asIdEET_v[_ZNK4YAML4Node2asIdEET_v]+0x7d): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA9_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA9_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [9]>(YAML::Mark const&, char const (&) [9])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA9_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA9_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA12_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA12_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [12]>(YAML::Mark const&, char const (&) [12])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA12_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA12_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA23_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA23_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [23]>(YAML::Mark const&, char const (&) [23])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA23_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA23_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA15_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA15_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [15]>(YAML::Mark const&, char const (&) [15])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA15_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA15_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA18_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA18_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [18]>(YAML::Mark const&, char const (&) [18])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA18_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA18_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA21_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA21_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [21]>(YAML::Mark const&, char const (&) [21])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA21_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA21_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA6_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA6_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [6]>(YAML::Mark const&, char const (&) [6])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA6_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA6_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA11_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA11_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [11]>(YAML::Mark const&, char const (&) [11])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA11_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA11_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA17_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA17_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [17]>(YAML::Mark const&, char const (&) [17])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA17_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA17_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA10_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA10_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [10]>(YAML::Mark const&, char const (&) [10])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA10_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA10_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::RepresentationException::RepresentationException(YAML::Mark const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/exceptions.h:189:(.text._ZN4YAML12BadSubscriptC2IA7_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA7_cEERKNS_4MarkERKT_]+0x41): undefined reference to `vtable for YAML::RepresentationException'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::BadSubscript::BadSubscript<char [7]>(YAML::Mark const&, char const (&) [7])':
/usr/include/yaml-cpp/exceptions.h:264:(.text._ZN4YAML12BadSubscriptC2IA7_cEERKNS_4MarkERKT_[_ZN4YAML12BadSubscriptC5IA7_cEERKNS_4MarkERKT_]+0x57): undefined reference to `vtable for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node_ref::mark_defined()':
/usr/include/yaml-cpp/node/detail/node_ref.h:30:(.text._ZN4YAML6detail4node12mark_definedEv[_ZN4YAML6detail4node12mark_definedEv]+0x1c): undefined reference to `YAML::detail::node_data::mark_defined()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node_ref::set_null()':
/usr/include/yaml-cpp/node/detail/node_ref.h:36:(.text._ZN4YAML6detail4node8set_nullEv[_ZN4YAML6detail4node8set_nullEv]+0x14): undefined reference to `YAML::detail::node_data::set_null()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::Node::EnsureNodeExists() const':
/usr/include/yaml-cpp/node/impl.h:60:(.text._ZNK4YAML4Node16EnsureNodeExistsEv[_ZNK4YAML4Node16EnsureNodeExistsEv]+0x38): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:60:(.text._ZNK4YAML4Node16EnsureNodeExistsEv[_ZNK4YAML4Node16EnsureNodeExistsEv]+0x3f): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZNK4YAML4Node16EnsureNodeExistsEv[_ZNK4YAML4Node16EnsureNodeExistsEv]+0x77): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node_ref::set_scalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/yaml-cpp/node/detail/node_ref.h:37:(.text._ZN4YAML6detail4node10set_scalarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4YAML6detail4node10set_scalarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1f): undefined reference to `YAML::detail::node_data::set_scalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML4NodeC2IPKcEERKT_[_ZN4YAML4NodeC5IPKcEERKT_]+0x52): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::convert_to_node<char [12]>(char const (&) [12], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:229:(.text._ZN4YAML6detail9node_data15convert_to_nodeIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data15convert_to_nodeIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x45): undefined reference to `YAML::detail::memory_holder::merge(YAML::detail::memory_holder&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::convert_to_node<char [23]>(char const (&) [23], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:229:(.text._ZN4YAML6detail9node_data15convert_to_nodeIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data15convert_to_nodeIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x45): undefined reference to `YAML::detail::memory_holder::merge(YAML::detail::memory_holder&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::convert_to_node<char [15]>(char const (&) [15], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:229:(.text._ZN4YAML6detail9node_data15convert_to_nodeIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data15convert_to_nodeIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x45): undefined reference to `YAML::detail::memory_holder::merge(YAML::detail::memory_holder&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::convert_to_node<char [18]>(char const (&) [18], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:229:(.text._ZN4YAML6detail9node_data15convert_to_nodeIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data15convert_to_nodeIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x45): undefined reference to `YAML::detail::memory_holder::merge(YAML::detail::memory_holder&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::convert_to_node<char [9]>(char const (&) [9], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:229:(.text._ZN4YAML6detail9node_data15convert_to_nodeIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data15convert_to_nodeIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x45): undefined reference to `YAML::detail::memory_holder::merge(YAML::detail::memory_holder&)'
/usr/bin/ld: /tmp/ccF55MEJ.o:/usr/include/yaml-cpp/node/detail/impl.h:229: more undefined references to `YAML::detail::memory_holder::merge(YAML::detail::memory_holder&)' follow
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [9]>(char const (&) [9], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [9]>(char const (&) [9], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA9_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [12]>(char const (&) [12], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [12]>(char const (&) [12], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA12_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [23]>(char const (&) [23], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [23]>(char const (&) [23], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA23_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [15]>(char const (&) [15], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [15]>(char const (&) [15], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA15_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [18]>(char const (&) [18], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [18]>(char const (&) [18], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA18_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [21]>(char const (&) [21], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [21]>(char const (&) [21], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA21_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [6]>(char const (&) [6], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [6]>(char const (&) [6], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA6_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [11]>(char const (&) [11], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [11]>(char const (&) [11], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA11_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [17]>(char const (&) [17], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [17]>(char const (&) [17], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA17_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [10]>(char const (&) [10], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [10]>(char const (&) [10], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA10_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [7]>(char const (&) [7], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:154:(.text._ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x68): undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xed): undefined reference to `YAML::BadSubscript::~BadSubscript()'
/usr/bin/ld: /usr/include/yaml-cpp/node/detail/impl.h:157:(.text._ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0xf4): undefined reference to `typeinfo for YAML::BadSubscript'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::memory_holder::create_node()':
/usr/include/yaml-cpp/node/detail/memory.h:38:(.text._ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x140): undefined reference to `YAML::detail::memory::create_node()'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `YAML::detail::node& YAML::detail::node_data::get<char [7]>(char const (&) [7], std::shared_ptr<YAML::detail::memory_holder>)':
/usr/include/yaml-cpp/node/detail/impl.h:170:(.text._ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE[_ZN4YAML6detail9node_data3getIA7_cEERNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x151): undefined reference to `YAML::detail::node_data::insert_map_pair(YAML::detail::node&, YAML::detail::node&)'
/usr/bin/ld: /tmp/ccF55MEJ.o: in function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > YAML::Node::as<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >() const':
/usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEET_v[_ZNK4YAML4Node2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEET_v]+0x7c): undefined reference to `YAML::InvalidNode::~InvalidNode()'
/usr/bin/ld: /usr/include/yaml-cpp/node/impl.h:155:(.text._ZNK4YAML4Node2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEET_v[_ZNK4YAML4Node2asISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEEET_v]+0x83): undefined reference to `typeinfo for YAML::InvalidNode'
/usr/bin/ld: /tmp/ccF55MEJ.o:(.data.rel.ro._ZTIN4YAML18TypedBadConversionINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE[_ZTIN4YAML18TypedBadConversionINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE]+0x10): undefined reference to `typeinfo for YAML::BadConversion'
/usr/bin/ld: /tmp/ccF55MEJ.o:(.data.rel.ro._ZTIN4YAML18TypedBadConversionIiEE[_ZTIN4YAML18TypedBadConversionIiEE]+0x10): undefined reference to `typeinfo for YAML::BadConversion'
/usr/bin/ld: /tmp/ccF55MEJ.o:(.data.rel.ro._ZTIN4YAML18TypedBadConversionIdEE[_ZTIN4YAML18TypedBadConversionIdEE]+0x10): undefined reference to `typeinfo for YAML::BadConversion'
/usr/bin/ld: /tmp/ccF55MEJ.o:(.data.rel.ro._ZTIN4YAML18TypedBadConversionISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEEE[_ZTIN4YAML18TypedBadConversionISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEEE]+0x10): undefined reference to `typeinfo for YAML::BadConversion'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:34: /home/hagemann/Software/COSItools/megalib/bin/StripEnergyThresholdFinder] Error 1
make[1]: *** [Makefile:135: apps] Error 2
make: *** [Makefile:126: all] Error 2

@fhagemann fhagemann marked this pull request as draft June 23, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants