Undefined reference to vtable et bibliothèques
Bonjour,
J'ai créé une petite bibliothèque avec en particulier deux petites classes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| namespace LD
{
namespace BDD
{
class DataBase;
class VirtualDataBaseFactory
{
public:
virtual DataBase * createDataBase(const std::string & dbname, const std::string & login,
const std::string & password = "", const std::string & host="localhost") = 0;
virtual ~VirtualDataBaseFactory(){}
};
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| namespace LD
{
namespace BDD
{
/** @brief DataBaseFactory for postgresql */
class PSQLDataBaseFactory : public VirtualDataBaseFactory
{
public:
PSQLDataBaseFactory();
DataBase * createDataBase(const std::string & dbname, const std::string & login,
const std::string & password = "", const std::string & host="localhost");
virtual ~PSQLDataBaseFactory(){}
};
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include "../../includes/PostgreSQL_impl/psqldatabase.h"
#include "../../includes/PostgreSQL_impl/psqldatabasefactory.h"
namespace LD
{
namespace BDD
{
PSQLDataBaseFactory::PSQLDataBaseFactory()
{
}
DataBase * createDataBase(const std::string & dbname, const std::string & login,
const std::string & password, const std::string & host)
{
return new PSQLDataBase(dbname, login, password, host);
}
}
} |
Et lorsque j'essaye de l'utiliser dans mon programme :
Code:
1 2 3 4 5 6 7 8 9
| #include <iostream>
#include "../../Library/DataBase/include/database.h"
int main()
{
LD::BDD::PSQLDataBaseFactory b;
cout << "Hello World!" << endl;
return 0;
} |
J'ai une erreur d'undefined reference to vtable for LD::BDD::PSQLDataBaseFactory dans LD::BDD::PSQLDataBaseFactory::~PSQLDataBaseFactory(), mais je ne vois pas du tout d'où elle pourrait provenir... avez-vous une idée?