我试图在 Ubuntu 上编译它,但它没有链接,我不明白为什么。
http://ubee.enseeiht.fr/vision/ELSD/
home@home:~/projects/elsd_1.0$ make
cc -I/usr/local/include -L/usr/local/lib -o elsd elsd.c valid_curve.c process_curve.c process_line.c write_svg.c -llapack_LINUX -lblas_LINUX -llibf2c -lm
/usr/bin/ld: cannot find -llapack_LINUX
/usr/bin/ld: cannot find -lblas_LINUX
/usr/bin/ld: cannot find -llibf2c
collect2: error: ld returned 1 exit status
make: *** [elsd] Error 1
home@home:~/projects/elsd_1.0$
home@home:~/projects/elsd_1.0$ ls /usr/local/lib
blas_LINUX.a libcblaswr.a python2.7 site_ruby
lapack_LINUX.a node_modules python3.4 tmglib_LINUX.a
home@home:~/projects/elsd_1.0$
home@home:~/projects/elsd_1.0$ ls /usr/local/include
blaswrap.h clapack.h f2c.h
home@home:~/projects/elsd_1.0$
最佳答案
SSC 通过告诉我添加 -Wl --verbose 以查看链接器在做什么来解决我的邮件问题,我的主要问题是 CLAPACK。
下载clapack.tgz,解压到目录CLAPACK-3.2.1,进入该目录。
mv make.inc.example make.inc
输入 make
现在此目录中有 blas_LINUX.a lapack_LINUX.a tmglib_LINUX.a。
将头文件从 INCLUDE 复制到/usr/local/include,必须 chmod a+r .... 才能授予读取权限
在 elsd_1.0 中编辑 makefile 并将“-llapack_LINUX -lblas_LINUX”更改为“-llapack -lblas”
我想我在第 4 步中对 .a 文件做了一些操作,也许我将其移动到了/usr/local/lib。
不管怎样,只要CLAPACK能链接就可以了。
关于c - 如何在Ubuntu上编译ELSD?链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27328359/