Linux 使用 lapack 库

标签 linux makefile lapack

我在制作代码项目时出错,因为我认为 lapack 缺少例程:

HomographyInit.cc:(.text+0x385): undefined reference to `dgesvd_'

我想我需要以某种方式将 lapack 库添加到我的 Makefile 中。这是我的 Makefile 的一部分:

CC = g++
COMPILEFLAGS = -I MY_CUSTOM_INCLUDE_PATH -D_LINUX -D_REENTRANT -Wall  -O3 -march=nocona -msse3
LINKFLAGS = -L MY_CUSTOM_LINK_PATH -lGVars3 -lcvd 

我尝试了以下操作但无济于事:

CC = g++
COMPILEFLAGS = -I MY_CUSTOM_INCLUDE_PATH -D_LINUX -D_REENTRANT -Wall  -O3 -march=nocona -msse3
LINKFLAGS = -L MY_CUSTOM_LINK_PATH -lGVars3 -lcvd **-llapack** 

结果:

make
...
/usr/bin/ld: cannot find -llapack
collect2: ld returned 1 exit status

如何将 lapack 添加到我的项目中?我很确定我安装正确,但愿意以某种方式仔细检查。

最佳答案

看起来 liblapack 不在 ld 可以找到的路径中。我会建议两件事:

  1. 手动建立符号链接(symbolic link)。 ld 可能(有时是常见的)无法识别 liblapack.so.3gfliblapack.so.3.0.1 等本质上是 liblapack.so。您可以通过 ln -s liblapack.so.3gf liblapack.so
  2. 设置链接
  3. 如果您使用的是 ubuntu 或 debian 存储库,请安装 liblapack-dev 软件包。由于某些不清楚的原因,liblapack3gfliblapack-dev 不同。我不确定在任何情况下,两者是否会做同样的事情。

我认为第一项应该能够解决您的问题(希望如此)。

关于Linux 使用 lapack 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710602/

相关文章:

linux - 上一个图像中存在文件夹时,docker RUN mkdir 不起作用

docker - make [1]:[install-domserver-l]错误1(忽略)

c - 适用于 Windows 和 Cygwin 的 Makefile

c++ - Makefile 子目录帮助——控制对象的放置位置

rust - 函数参数旁边的两个单引号括起来的字母是什么意思?

c++ - 编译lapacke示例代码?

linux - linux内核如何在动态内存中保存struct_task?

linux - 为什么linux/unix缺少UI?

linux - 将数组名称传递给 bash 中的函数

android-ndk - LAPACK 构建期间 Unresolved 正余弦