我正在将一个使用 clapack 的项目从 osx 移动到 linux 并遇到一些问题。我通过下载 cmake 项目、编译并将必要的 .h 和 .a 文件移动到我的项目中的相关位置来使用 clapack。
我在两种场景(osx 和 linux)中都使用了相同的步骤,并且在两台机器上都有相同的源代码,但是我无法让所有内容在 linux 上正确链接。
我的 cmake 文件中的代码行看起来像这样
#-----------------------------------------------------------------------------
# INCLUDE CLAPACK
#-----------------------------------------------------------------------------
INCLUDE_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK)
LINK_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK/lib)
LINK_LIBRARIES(blas f2c lapack tmglib)
我得到的错误看起来像这样
/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'
这是我第一次做从 osx 到 linux 的移植,不知道是否需要做出一些不同的要求才能链接或问题是什么
任何帮助将非常感激。
斯科特