Référence non définie à un membre statique
Dans l'extrait de code fourni, une variable de membre statique _fréquence est définie dans la classe WindowsTimer. Cependant, lorsque vous tentez de compiler le code à l'aide d'un compilateur croisé, l'erreur suivante se produit :
undefined reference to `WindowsTimer::_frequency'
Cette erreur indique que l'éditeur de liens ne peut pas localiser la définition de la variable membre statique lors de la liaison. La raison en est que les variables membres statiques ne sont pas automatiquement initialisées par le compilateur et que leurs définitions doivent être explicitement fournies dans un fichier source.
Solution :
Pour Pour résoudre cette erreur, la définition de la variable membre statique _fréquence doit être fournie dans l'un des fichiers sources du programme. Cela peut être fait en ajoutant la ligne suivante à un fichier .cpp :
LARGE_INTEGER WindowsTimer::_frequency;
En fournissant la définition de la variable membre statique, l'éditeur de liens peut résoudre avec succès la référence à celle-ci lors de la liaison, et l'erreur de compilation sera résolu.
Il est important de noter que les tentatives précédentes pour modifier la définition de _fréquence dans la déclaration de classe en utilisant _fréquence.QuadPart = 0ull ou static LARGE_INTEGER _ Frequency.QuadPart = 0ull n'aurait pas résolu le problème, car le compilateur nécessite toujours une définition explicite de la variable membre statique en dehors de la définition de la classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!