如何在Ubuntu上编译ELSD?链接错误

时间:2014-12-06 04:35:47

标签: c ubuntu compilation linker

我试图在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$ 

1 个答案:

答案 0 :(得分:0)

我的邮件问题由SSC解决,告诉我添加-Wl --verbose以查看链接器正在做什么,我的主要问题是CLAPACK。

  1. 下载提取到目录CLAPACK-3.2.1的clapack.tgz,转到此目录。

  2. mv make.inc.example make.inc

  3. 输入make

  4. 现在我在这个目录中有blas_LINUX.a lapack_LINUX.a tmglib_LINUX.a。

  5. 将头文件从INCLUDE复制到/ usr / local / include,必须chmod a + r ....以提供读取权限

  6. 在elsd_1.0中编辑makefile并将“-llapack_LINUX -lblas_LINUX”更改为“-llapack -lblas”

  7. 我想我在步骤4中对.a文件做了一些事情,也许我把它移到了/ usr / local / lib。

    无论如何,只要CLAPACK可以链接,它就可以工作。