la bibliothèque standard sont déjà définies dans la lib, provoquant l'erreur de l'éditeur de liens

Pas sûr de ce que je fais mal ici, mais disons que j'ai:

foo.h

class foo
{
public:
int Get10(std::wstring);
};

foo.cpp

int foo::Get10(std::wstring dir)
{
   return 10;
};

Et je le compiler comme une lib, si je comprend que lib dans un autre projet avec l'en-tête (foo.h) et atttempt de faire appel à une instance de foo:

foo f;
f.Get10(L"ABC");

Je reçois un éditeur de liens d'erreur disant:

Erreur 1 error LNK2005: "public: __thiscall
std::_Container_base12::~_Container_base12(void)"
(??1_Container_base12@std@@QAE@XZ) déjà défini dans
foo.lib(foo.obj) C:\foo\msvcprtd.lib(MSVCP100D.dll) footest

Des idées pourquoi cela se produit?

Avez-vous essayez d'ajouter un point-virgule ; après la définition de la classe?
ouaip c'est là, dans le fichier source haha, mon mauvais pour en sortir de ce que j'ai mis ici.

OriginalL'auteur tweetypi | 2011-12-14