【问题标题】:/usr/bin/ld: cannot find -lmkl_rt When compiling makefile/usr/bin/ld: 编译makefile时找不到-lmkl_rt
【发布时间】:2013-11-26 10:14:23
【问题描述】:

这是制作文件

# EXTRALIBS = -L/opt/SUNWspro/lib -lF77 -lM77 -lsunmath  -lfsu
# LAPACK = -L/home/bramley/lib -llapack95
# BLAS = -L/home/bramley/lib -lblas95
# F95= /usr/local/intel/compiler60/ia32/bin/ifc
# OPTS= -O -w
# LIBS = $(LAPACK) $(BLAS)

include make.inc

runLU: luDriver.o LU8.o LU4.o rowswp.o elapsedtime.o kinds.mod \
    utilities.o swaps.o checkLU.o WriteParameters.o writeB.o Writeipiv.o 
    $(F95) $(INCS) -o runLU $(OPTS) luDriver.o LU8.o LU4.o kinds.o \
        utilities.o swaps.o elapsedtime.o WriteParameters.o checkLU.o \
        rowswp.o  writeB.o Writeipiv.o $(LIBS)

luDriver.o: luDriver.f90 kinds.mod 
    $(F95) $(OPTS) -c luDriver.f90
LU4.o: LU4.c
    $(CC) $(INCS) $(OPTS) -c LU4.c
LU8.o: LU8.c
    $(CC) $(INCS) $(OPTS) -c LU8.c

rowswp.o: rowswp.f90 kinds.mod
    $(F95) $(OPTS) -c rowswp.f90

WriteParameters.o: WriteParameters.f90 
    $(F95) $(OPTS) -c WriteParameters.f90

kinds.mod: kinds.f90 
    $(F95) $(OPTS) -c kinds.f90

elapsedtime.o: elapsedtime.f90 
    $(F95) $(OPTS) -c elapsedtime.f90

checkLU.o: checkLU.f90 kinds.mod 
    $(F95) $(OPTS) -c checkLU.f90

swaps.o: swaps.f90 kinds.mod 
    $(F95) $(OPTS) -c swaps.f90

utilities.o: utilities.f90 kinds.mod
    $(F95) $(OPTS) -c utilities.f90

writeB.o: writeB.f90 
    $(F95) $(OPTS) -c writeB.f90

Writeipiv.o: Writeipiv.f90 
    $(F95) $(OPTS) -c Writeipiv.f90

clean:
    /bin/rm -f *.o *.mod runLU log B ipiv

kleen:
    /bin/rm -f *.o *.mod runLU log results B ipiv

这里是 make.inc

# F90 = ifort
F90 = gfortran
CC = gcc
F95 = $(F90)
OPTS = -O3 

MKLROOT = /opt/intel/composer_xe_2013.3.163/mkl

LIBS =   -L$(MKLROOT)/lib/intel64 -lmkl_rt -lpthread -lm
INCS = -I.

当它说 -lmkl_rt is not found 时我该怎么办???

【问题讨论】:

  • 使用ls 或类似方法检查/opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_rt.so 是否存在。例如,在我安装的 MKL 中,库文件的路径中有另一层目录结构。

标签: gcc linker fortran shared-libraries intel


【解决方案1】:

使用

 source /opt/intel/composerxe/bin/compilervars.sh intel64

(最好放在bash_profile)。根据您的安装调整路径。

它设置了正确的LIBRARY_PATH 变量(不是LD_LIBRARY_PATH,它是用于运行时的!)

【讨论】:

    【解决方案2】:

    您应该设置变量LD_LIBRARY_PATH 并将其指向包含缺失库的目录。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 2021-05-07
      • 2019-09-30
      • 1970-01-01
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      相关资源
      最近更新 更多