pow () n’est pas défini

#include  #include  void main() { int i, diff, sum = 0, num1 = 6, num2 = 2; for(i = 0; i <= 4; i++) { diff = num1 - num2; sum += pow(diff, i); } printf("%d", sum); } 

Chaque fois que j’essaie d’exécuter ce programme, un message d’erreur apparaît:

En fonction main :
référence non définie à pow .

Qu’est-ce que j’oublie ici?

Ceci est une erreur de l’éditeur de liens. Vous devez établir un lien avec la bibliothèque mathématique, spécifiez -lm à la fin de votre commande de compilateur. De l’ homme pow :

Lien avec -lm.

La bibliothèque mathématique ne fait pas partie de libc. Vous devez le lier:

 gcc file.c -lm -o file 

La fonction pow() est définie dans la bibliothèque mathématique. Votre compilateur par défaut ne lie pas votre programme à cette bibliothèque, ce qui empêche l’éditeur de liens de résoudre l’appel à pow() .

Pour résoudre ce problème, vous devez append -lm à la fin de votre ligne de compilation / lien qui relie la bibliothèque mathématique à votre programme.

Je viens d’exécuter le même programme sur mon Turbo C et j’ai obtenu la sortie en 341. Vérifiez si vos fichiers d’en-tête sont en place dans le dossier / include de votre dossier Turbo C. Assurez-vous de vérifier s’il contient un fichier Math.h.