Nic*_*ick 3 c++ linker blas lapack intel-mkl
我正在尝试编译一个巨大的软件包,这是我似乎无法弄清楚的最后一个障碍.
我收到的错误如下:
RNDiracDeterminantBase.cpp:(.text+0x22bf): undefined reference to `dgetrf_'
RNDiracDeterminantBase.cpp:(.text+0x2524): undefined reference to `dgetri_'
RNDiracDeterminantBase.cpp:(.text+0x3005): undefined reference to `dgetri_'
../../lib/libqmcwfs.a(RNDiracDeterminantBase.cpp.o): In function `qmcplusplus::RNDiracDeterminantBase::ratio(qmcplusplus::ParticleSet&, int, qmcplusplus::ParticleAttrib<qmcplusplus::TinyVector<double, 3u> >&, qmcplusplus::ParticleAttrib<double>&)':
RNDiracDeterminantBase.cpp:(.text+0x4156): undefined reference to `dgemv_'
RNDiracDeterminantBase.cpp:(.text+0x420f): undefined reference to `dger_'
Run Code Online (Sandbox Code Playgroud)
谷歌透露,这些引用是针对英特尔的MKL库.但是,我不知道我需要链接哪个文件.我试过libmkl_core.a,libmkl_gnu_thread.a,libmkl_blacs_intelmpi_lp64.a等.有很多文件在:
/ MKL/LIB/Intel64位/
如果需要,可以发布更多信息.
Emp*_*ian 10
我不知道我需要链接哪个文件.我试过libmkl_core.a,libmkl_gnu_thread.a,libmkl_blacs_intelmpi_lp64.a等.有很多文件在:
/mkl/lib/intel64/
有大量文件的事实并不意味着您必须依次尝试每个库.
要找出哪个库定义了所需的符号,请运行以下命令:
cd /mkl/lib/intel64
nm -A *.a | egrep '[TWBD] (dger_|dgemv_|dgetrf_|dgetri_)$'
Run Code Online (Sandbox Code Playgroud)
还要确保将库放在链接行的末尾,因为命令行上的归档库顺序很重要.
| 归档时间: |
|
| 查看次数: |
14462 次 |
| 最近记录: |