gpt4 book ai didi

linux - 在 linux 上链接 clapack

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:33 25 4
gpt4 key购买 nike

我正在将一个使用 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 的移植,不知道是否有一些不同的要求我需要做出链接或问题是什么

任何帮助将不胜感激。

斯科特

最佳答案

链接的顺序很重要。由于 liblapack.a 需要来自 libf2c.a 的函数,后者需要在前者之后。如此变化

LINK_LIBRARIES(blas f2c lapack tmglib)

LINK_LIBRARIES(blas lapack f2c tmglib)

应该有帮助。

关于linux - 在 linux 上链接 clapack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com