I'm getting the following exit error by the compiler:
./x86_64/Release/InterChannelCurvesParameters.o: In function `pcl::ICCCurvePointValue::ICCCurvePointValue(pcl::MetaTable*)':
InterChannelCurvesParameters.cpp:(.text+0xfd5): undefined reference to `pcl::CurvePointValue::CurvePointValue(pcl::MetaTable*)'
./x86_64/Release/InterChannelCurvesParameters.o: In function `pcl::CurvePointValue::~CurvePointValue()':
InterChannelCurvesParameters.cpp:(.text._ZN3pcl15CurvePointValueD2Ev[_ZN3pcl15CurvePointValueD5Ev]+0x5): undefined reference to `vtable for pcl::CurvePointValue'
/usr/bin/ld: ./x86_64/Release/InterChannelCurvesParameters.o: relocation R_X86_64_PC32 against undefined hidden symbol `vtable for pcl::CurvePointValue' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
make: *** ["/home/cmilovic/Development/Working/InterChannelCurves/linux/g++/x86_64/Release"/InterChannelCurves-pxm.so] Error 1
And here is part of the Parameters.h and Parameters.cpp files:
class ICCCurvePointValue : public CurvePointValue
{
public:
ICCCurvePointValue( MetaTable* );
virtual IsoString Id() const = 0;
virtual double MinimumValue() const;
virtual double MaximumValue() const;
virtual bool IsX() const = 0;
};
#define DECLARE_ICCCURVE_POINT_VALUE_PARAMETER( classId, parId, isX ) \
class classId; \
extern classId* The##classId##Parameter; \
class classId : public ICCCurvePointValue \
{ \
public: \
classId( MetaTable* t ) : ICCCurvePointValue( t ) \
{ if ( The##classId##Parameter == 0 ) The##classId##Parameter = this; } \
virtual IsoString Id() const { return parId; } \
virtual bool IsX() const { return isX; } \
}
DECLARE_ICCCURVE_POINT_VALUE_PARAMETER( XICC, "x", true );
DECLARE_ICCCURVE_POINT_VALUE_PARAMETER( YICC, "y", false );
ICCCurvePointValue::ICCCurvePointValue( MetaTable* t ) : CurvePointValue( t )
{
}
double ICCCurvePointValue::MinimumValue() const
{
return -1.0;
}
double ICCCurvePointValue::MaximumValue() const
{
return 1.0;
}
Any idea of where is the problem?
I'm working over the code of ColorSaturation, and just changed the names of several parameters...
Also, I have one doubt. CurveBase.h has included the parameters from the CurvesTransform process... Is it safe to remove that, or do I need to include them too? I'm going down the safe road, and doing the latter...