Pregunta: Estimado Techglimpse:Estoy tratando de compilar un programa MPI (un programa de ejemplo simple que calcula el valor de PI) usando MPICH versión 1.2.6. A continuación se muestra el comando que utilicé para la compilación:
mpicc -o a.out pi.c
Sin embargo, el comando falló con un mensaje de error como “referencia indefinida a `sqrt’ “. Verifiqué el código y tiene math.h definido. ¿Cual podría ser el problema? – Surya
El mensaje de error detallado:
$ 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
Surya, tienes que vincular la biblioteca de matemáticas durante la compilación como se muestra a continuación:
$ mpicc -o a.out pi.c -lm
El libm.so se ubicará en /usr/lib . Sin embargo, la ubicación puede variar de una máquina a otra.
$ whereis libm.so libm: /usr/lib/libm.so /usr/lib/libm.a
En la opción -lm , 'l ' apunta al prefijo 'lib' y 'm ' para matemáticas.