Библиотека векторной статистики - Библиотека математического ядра
Вопрос
Кто-нибудь может объяснить мне (на простом английском), как связать библиотеку векторной статистики (включенную в библиотеку Math Kernel) с исходным кодом Fortran 90, скомпилированным с помощью компилятора Intel Fortran для Linux?
Мой makefile выглядит следующим образом:
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
Это приводит к следующей ошибке:
ld: cannot find -libmkl_ia32.a
make: *** Error 1
Однако файл существует в указанном каталоге (mklpath).
Спасибо!!
Решение
Как на самом деле называется файл?-l для компоновщика не предназначено для использования реального имени файла.Предполагается, что он принимает [x], в то время как файл, который будет найден затем, называется lib[x].{итак,a}.
Если вы хотите указать реальное имя объектного файла, вы можете либо просто добавить его без использования -l и используя абсолютный путь, либо использовать -l:[filename].
Я предполагаю, что правильный способ сделать это для вас - это -lmkl_ia32
однако.Необработанные имена файлов полезны только в том случае, если библиотека не называется lib[x].{итак,a}