Question : Cher Techglimpse, J'essaie de compiler un programme MPI (un exemple de programme simple qui calcule la valeur PI) en utilisant MPICH version 1.2.6. Ci-dessous la commande que j'ai utilisée pour la compilation :
mpicc -o a.out pi.c
Cependant, la commande a échoué avec un message d'erreur comme "référence non définie à 'sqrt' “. J'ai vérifié le code et il a math.h défini. Quel pourrait être le problème? – Surya
Le message d'erreur détaillé :
$ mpicc -o mpi-pi pi.c /tmp/ccwuQwDw.o: In function `main': pi.c:(.text+0x15f): undefined reference to `sqrt' collect2: ld returned 1 exit status
Solution :
Surya, vous devez lier la bibliothèque mathématique pendant la compilation comme indiqué ci-dessous :
$ mpicc -o a.out pi.c -lm
Le libm.so sera situé sous /usr/lib . Cependant, l'emplacement peut varier d'une machine à l'autre.
$ whereis libm.so libm: /usr/lib/libm.so /usr/lib/libm.a
Dans l'option -lm , 'l ‘ pointe vers le préfixe ‘lib’ et ‘m ‘ pour les maths.