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 !!

È stato utile?

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}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top