Bibliothèque statistique vectorielle - Bibliothèque de noyau mathématique
Question
Quelqu'un pourrait-il m'expliquer (en anglais simplifié) comment lier la bibliothèque statistique Vector (incluse dans la bibliothèque Math Kernel) à un code source Fortran 90 compilé avec le compilateur Intel Fortran pour Linux?
Mon fichier makefile se présente comme suit:
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
Cela produit l'erreur suivante:
ld: cannot find -libmkl_ia32.a
make: *** Error 1
Cependant, le fichier existe dans le répertoire spécifié (mklpath).
Merci !!
La solution
Comment s'appelle le fichier? -l à l'éditeur de liens n'est pas destiné à prendre un vrai nom de fichier. Il est censé prendre [x], alors que le fichier à trouver s'appelle alors lib [x]. {So, a}.
Si vous voulez donner le nom de fichier de l'objet réel, vous pouvez soit l'ajouter sans utiliser -l et le chemin absolu, soit utiliser -l: [nom du fichier].
Cependant, je suppose que la bonne façon de le faire est de -lmkl_ia32
. Les noms de fichiers bruts ne sont utiles que si la lib n'est pas appelée lib [x]. {So, a}