Привет всем, не могу понять что хочет от меня линкер.
Если кратко, есть класс который описывается
такclass ModuleClass
{
public:
ModuleClass(const char* ModuleGUID);
ModuleClass(std::string ModuleGUID);
std::string GetModuleGUID();
int ProcessTast(TaskClass t);
~ModuleClass();
private:
int Start(TaskClass t);
int Stop();
int Extract();
int SetExec();
int Launch();
int AnswersProcessor();
int ReadingThreadChecker();
std::string ModuleGUID;
std::atomic<bool> isStarted;
std::atomic<bool> stopFlag;
PipeServerClass* pipe;
MessageCollectorClass* msgCollector;
std::thread * AnswerProcessingThread;
std::thread * ReaderCheckingThread;
};
Если коротко, то есть модули, и этот класс должен представлять собой некий общий интерфейс к разным модулям.
В нем есть два потока - один проверяет состояние потока чтения PipeClass(он может загнуться, но модуль как бы будет активным), а второй обрабатывает ответы модуля.
Так вот, для всего этого написаны обертки необходимые, но при сборке получаю какую то непонятную мне ругань
./obj/local/arm64-v8a/objs-debug/Kernel/main.o: In function `void std::_Destroy<ModuleClass>(ModuleClass*)':
/home/drem1lin/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/stl_construct.h:93: undefined reference to `ModuleClass::~ModuleClass()'
./obj/local/arm64-v8a/objs-debug/Kernel/main.o: In function `void std::_Destroy<TaskClass>(TaskClass*)':
/home/drem1lin/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/stl_construct.h:93: undefined reference to `TaskClass::~TaskClass()'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Объясните пожалуйста, что он хочет?
И вообще, я несколько не понимаю, если есть вот такой конструктор
ModuleClass::ModuleClass(std::string ModuleGUID)
{
this->ModuleGUID.clear();
this->ModuleGUID.append(ModuleGUID);
msgCollector = new MessageCollectorClass();
std::string myfifo("//data//local//tmp//\0");
myfifo.append(this->ModuleGUID);
pipe = new PipeServerClass(myfifo, std::bind(std::mem_fn(&MessageCollectorClass::AddData), msgCollector, std::placeholders::_1, std::placeholders::_2));;
isStarted = false;
stopFlag = false;
ReaderCheckingThread = nullptr;
AnswerProcessingThread = nullptr;
}
Какой должен быть деструктор?