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

标签 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$ 

最佳答案

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

  1. 下载clapack.tgz,解压到目录CLAPACK-3.2.1,进入该目录。

  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”

我想我在第 4 步中对 .a 文件做了一些操作,也许我将其移动到了/usr/local/lib。

不管怎样,只要CLAPACK能链接就可以了。

关于c - 如何在Ubuntu上编译ELSD?链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27328359/

相关文章:

c - 如何从源代码生成 .cpp 文件?

c - C 中的 BITCOUNT 宏

c - 如何通过 C 预处理器打印磅/哈希?

ruby-on-rails - 在服务器上部署 Rails 应用程序时遇到问题

php - Composer 更新通过 puppet 超时运行

ubuntu - WSL 中的 Julia 不打开 Jupyter 笔记本

在 MinGW 中更改 pkg-config 的 PKG_CONFIG_PATH

go - GCC-Go - 针对特定架构优化构建

c - 在完美运行的程序中检测到缓冲区溢出(显然)

C 读取页面的 HTML