错误:_cspr_lp64_iface.c:(.text+0x28): undefined reference to `mkl_blas_cspr'类似未定义引用

本文解决了在使用Intel MKL库进行编译时遇到的未定义引用错误问题,通过调整库的引用顺序和确保所有引用的函数来自同一版本的MKL库来解决编译失败的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1 编译出现

      ../../tmglib_LINUX.a linsrc_LINUX.a ../../libmkl_intel_lp64.a -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lm -lpthread -lifcore -o ../xlintimc

../../libmkl_intel_lp64.a(_cspr_lp64.o): In function `cspr_':

_cspr_lp64_iface.c:(.text+0x28): undefined reference to `mkl_blas_cspr'

make: *** [../xlintimc] 错误 1

 

 

是因为把mkllapack拷贝进入自己的lapack包里面引起的,改为使用

系统安装的lapack

/opt/intel/composerxe/mkl/lib/intel64/libmkl_intel_lp64.a

 

 

推测原因:1  是因为库引用之间存在相对路径,移过来后就找不到函数了

                     2 编译添加的库里面,库与库之间可能存在位置关系(与编译器有关),比如

A 库引用B,那么库A写在库B的前面

              3 系统中有两个mkl库,注意不要混合使用(需要修改编译选项和环境变量LD_LIBRARYPATH使得编译程序所使用的函数均来自同一个库)。

 

注意不要缺失库,这需要阅读intel 提供的mkl手册,把库写全写对。

 

本例中其他库所引用的函数在lapack库中,故它写在后面;而它引用blas库,故blas库写在最后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值