Biblioteca statistica vettoriale - Libreria del kernel matematico
Domanda
Qualcuno potrebbe spiegarmi (in un inglese semplice) come collegare la Vector Statistical Library (inclusa nella Math Kernel Library) a un codice sorgente Fortran 90 compilando con il compilatore Intel Fortran per Linux?
Il mio makefile ha il seguente aspetto:
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 il seguente errore:
ld: cannot find -libmkl_ia32.a
make: *** Error 1
Tuttavia, il file esiste nella directory specificata (mklpath).
Grazie !!
Soluzione
Come viene realmente chiamato il file? -l al linker non ha lo scopo di prendere un nome file reale. È pensato per prendere [x], mentre il file che si trova allora si chiama lib [x]. {So, a}.
Se vuoi dare il nome del file dell'oggetto reale, puoi semplicemente aggiungerlo senza usare -l e usando il percorso assoluto, oppure usare -l: [nome file].
Presumo che il modo giusto di farlo per te sia -lmkl_ia32
. I nomi di file grezzi sono utili solo se la lib non si chiama lib [x]. {So, a}