我很难将 clapack 链接到我在 linux 上的 cmake 项目,非常感谢任何帮助。
我已经成功地构建了 clapack 并将其链接到 osx 上的同一个项目,这使得这种情况特别令人沮丧。
我首先下载了 clapack-3.2.1-cmake 并编译了项目。然后,我将 .a 和相关的 .h 文件复制到项目根目录下名为 CLAPACK 的目录中。(libblas.a、libf2c.a、liblapack.a 和 libtmglib.a 到 CLAPACK/lib 和 blaswrap.h、clapack.h 和 f2c.h 在 CLAPACK)
然后我更改了我的项目的 cmake 文件以包含
INCLUDE_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK)
LINK_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK/lib)
LINK_LIBRARIES( f2c blas lapack tmglib )
这些步骤允许我在我的 mac 上编译,但是在将项目转移到 linux 机器并重新编译 clapack 库时,我得到了如下所示的链接错误
/home/siggik/Development/SFT-9012/CLAPACK/lib/liblapack.a(sgesvd.c.o): In function `sgesvd_':
sgesvd.c:(.text+0x456): undefined reference to `s_cat'
sgesvd.c:(.text+0x1fa4): undefined reference to `s_cat'
/home/siggik/Development/SFT-9012/CLAPACK/lib/liblapack.a(sormbr.c.o): In function `sormbr_':
sormbr.c:(.text+0x39f): undefined reference to `s_cat'
sormbr.c:(.text+0x45c): undefined reference to `s_cat'
sormbr.c:(.text+0x527): undefined reference to `s_cat'
任何帮助都会很棒。谢谢,
斯科特