Библиотека векторной статистики - Библиотека математического ядра

StackOverflow https://stackoverflow.com/questions/611109

  •  03-07-2019
  •  | 
  •  

Вопрос

Кто-нибудь может объяснить мне (на простом английском), как связать библиотеку векторной статистики (включенную в библиотеку 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}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top