Partager via


Corps de fonction ou variable manquant

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 la 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();
}

Voir aussi

Référence

Erreur des outils Éditeur de liens LNK2019