我在编写代码项目时出错,因为我认为 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 可以找到的路径中。我会建议两件事:
liblapack.so.3gf
或 liblapack.so.3.0.1
等本质上是 liblapack.so
。您可以通过 ln -s liblapack.so.3gf liblapack.so
liblapack-dev
包。由于一些不清楚的原因, liblapack3gf
与 liblapack-dev
不同。我不确定在任何情况下,两者是否都会做同样的事情。 我认为第一项应该能够解决您的问题(希望如此)。
关于Linux 使用 lapack 库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17710602/