我试图在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$
答案 0 :(得分:0)
我的邮件问题由SSC解决,告诉我添加-Wl --verbose以查看链接器正在做什么,我的主要问题是CLAPACK。
下载提取到目录CLAPACK-3.2.1的clapack.tgz,转到此目录。
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可以链接,它就可以工作。