Domanda: Caro Techglimpse, Sto cercando di compilare un programma MPI (un semplice programma di esempio che calcola il valore PI) utilizzando MPICH versione 1.2.6. Di seguito è riportato il comando che ho usato per la compilazione:
mpicc -o a.out pi.c
Tuttavia, il comando non è riuscito con un messaggio di errore come "riferimento non definito a `sqrt' “. Ho verificato il codice e contiene math.h definito. Quale potrebbe essere il problema? – Surya
Il messaggio di errore dettagliato:
$ 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
Soluzione:
Surya, devi collegare la libreria di matematica durante la compilazione come di seguito indicato:
$ mpicc -o a.out pi.c -lm
Il libm.so si troverà in /usr/lib . Tuttavia, la posizione potrebbe variare da macchina a macchina.
$ whereis libm.so libm: /usr/lib/libm.so /usr/lib/libm.a
Nell'opzione -lm , "l ' indica il prefisso 'lib' e 'm 'per la matematica.