Corps de fonction ou variable manquant
Mise à jour : novembre 2007
Missing Function Body or Variable
Avec seulement un prototype de fonction, le compilateur peut poursuivre sans erreur, mais l'éditeur de liens ne peut pas résoudre un appel à une adresse parce qu'il n'y a pas de code de fonction ou d'espace réservé pour la variable. Vous ne verrez pas cette erreur tant que vous n'aurez pas créé un appel à la fonction que l'éditeur de liens ait à résoudre.
Exemple
L'appel de fonction dans main provoque l'erreur LNK2019, car le prototype permet au compilateur de considérer que la fonction existe. L'éditeur de liens découvre que ce n'est pas le cas.
// LNK2019_MFBV.cpp
// LNK2019 expected
void DoSomething(void);
int main() {
DoSomething();
}
En C++, vérifiez que vous incluez l'implémentation d'une fonction spécifique pour une classe et pas seulement un prototype dans la définition de la classe. Si vous définissez la classe en dehors du fichier d'en-tête, prenez soin d'inclure le nom de classe avant la fonction (Classname::memberfunction).
// LNK2019_MFBV_2.cpp
// LNK2019 expected
struct A {
static void Test();
};
// Should be void A::Test() {}
void Test() {}
int main() {
A AObject;
AObject.Test();
}