Biblioteca estadística de vectores - Biblioteca del núcleo de matemáticas
Pregunta
¿Alguien podría explicarme (en un lenguaje sencillo) cómo vincular la Vector Statistical Library (incluida en la Math Kernel Library) con un código fuente Fortran 90 que compila con el compilador Intel Fortran para Linux?
Mi makefile tiene el siguiente aspecto:
f90comp = ifort
libdir = /home/project/
mklpath = /opt/intel/mkl/10.0.5.025/lib/32/
mklinclude = /opt/intel/mkl/10.0.5.025/include/
exec: AAA.o
$(f90comp) -o AAA -L$(mklpath) -I$(mklinclude) AAA.o -libmkl_ia32.a -lguide -lpthread
AAA.o: $(libdir)AAA.f90
$(f90comp) -c -L$(mklpath) -I$(mklinclude) $(libdir)AAA.f90 -libmkl_ia32.a -lguide -lpthread
Produce el siguiente error:
ld: cannot find -libmkl_ia32.a
make: *** Error 1
Sin embargo, el archivo existe en el directorio especificado (mklpath).
¡Gracias!
Solución
¿Cómo se llama realmente el archivo? -l al enlazador no está destinado a tomar un nombre de archivo real. Se supone que toma [x], mientras que el archivo que se encuentra se llama lib [x]. {So, a}.
Si desea dar el nombre real del archivo de objeto, puede simplemente agregarlo sin usar -l y usar la ruta absoluta, o usar -l: [nombre de archivo].
Supongo que la forma correcta de hacerlo por ti es -lmkl_ia32
sin embargo. Los nombres de archivo sin procesar solo son útiles si la biblioteca no se llama lib [x]. {So, a}