Я пытаюсь написать загрузчик файлов на основе интерфейса, который будет реализован разными способами для разных типов файлов. Я пробовал каждую комбинацию, которая приходила мне на ум или находилась в стеке/в Интернете, но я продолжаю получать ошибку. Что я делаю не так?ошибка: неопределенная ссылка на typeinfo при реализации шаблона интерфейса в C++
ядро / loader.h:
#ifndef CORE_LOADER_H
#define CORE_LOADER_H
class LoaderInterface
{
public:
virtual bool reloadFile();
};
#endif // CORE_LOADER_H
ядро / lodaer/own.h:
#ifndef CORE_LOADER_OWN_H
#define CORE_LOADER_OWN_H
#include "src/core/loader.h"
class Own : public LoaderInterface
{
public:
bool reloadFile();
};
#endif // CORE_LOADER_OWN_H
ядро / погрузчик/own.cpp:
#include "src/core/loader/own.h"
bool Own::reloadFile(){
return true;
}
Linker говорит:
(..)/qt/build-Foo-Desktop_Qt_5_7_0_GCC_64bit-Debug/own.o:-1: error: undefined reference to `typeinfo for LoaderInterface'
Это не имеет ничего общего с пространствами имен. Или Qt. Удалите оба, и вы все равно получите ту же ошибку. – juanchopanza
@juanchopanza Не стесняйтесь предлагать более подходящее название. – Luke
Как насчет «ошибки: недопустимое использование неполного типа»? Это упростит работу с Google. – juanchopanza