Maison > développement back-end > C++ > Pourquoi mon compilateur croisé produit-il une « référence non définie à « WindowsTimer::_ Frequency » » et comment puis-je y remédier ?

Pourquoi mon compilateur croisé produit-il une « référence non définie à « WindowsTimer::_ Frequency » » et comment puis-je y remédier ?

Barbara Streisand
Libérer: 2024-12-18 21:18:12
original
632 Les gens l'ont consulté

Why Does My Cross Compiler Produce

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'
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal