gpt4 book ai didi

c++ - 如何将 lapack 和 BLAS 库链接到 C++ 代码

转载 作者:行者123 更新时间:2023-12-05 07:59:58 36 4
gpt4 key购买 nike

以上是线性代数库。我正在使用 Armadillo ,它就像一个 C++ 包装器/框架,用于链接到 Fortran 中更基本的线性代数库。

我可以通过使用带 -I 标志的 gcc -c 选项让 #include "armadillo"轻松编译 example.cpp。这会生成 example.o,现在应该静态链接到 liblapack_LINUX.a 和 libBLAS_linux.a

两者的位置:

liblapack_LINUX.a :-/home/nimish/HTMLProjects/WP2/lib/lapack/
libBLAS_linux.a :-/home/nimish/HTMLProjects/WP2/lib/blas

我发出以下命令:

gcc -o example.o -L../lib/blas -lblas_LINUX -L../lib/lapack -llapack_LINUX

或与绝对路径

nimish@ubuntu:~$ gcc -o example.o -L/home/nimish/HTMLProjects/WP2/lib/blas -lblas_LINUX    -L/home/nimish/HTMLProjects/WP2/lib/lapack -llapack_LINUX

获取错误:

/usr/bin/ld: cannot find -lblas_LINUX
collect2: ld returned 1 exit status

但是图书馆确实存在——

nimish@ubuntu:~$ find /home/nimish/HTMLProjects/WP2 -name liblapack_LINUX.a
/home/nimish/HTMLProjects/WP2/lib/lapack/liblapack_LINUX.a

nimish@ubuntu:~$ find /home/nimish/HTMLProjects/WP2 -name libblas_LINUX.a
/home/nimish/HTMLProjects/WP2/lib/BLAS/libblas_LINUX.a

我做错了什么?我对这种链接库业务以及 gcc 有点陌生。

最佳答案

首先你需要确保你已经使用(+lapack)安装了BLAS

sudo apt-get install libblas-dev liblapack-dev

然后您可以在程序文件后使用 -lblas 进行链接。或者您可以使用 make 文件。

在我这边,我更喜欢使用 OpenBlas,您可以在 makefile 中使用以下内容。

  1. www.openblas.net , 获取 tar.gz复制到你的目录
  2. 解压:tar -zxvf OpenBLAS-0.2.20.tar.gz
  3. 编译它:cd OpenBLAS-0.2.20制作

完成后,您应该拥有文件 libopenblas.a,即 openblas 库

  • BLASLIB = OpenBLAS/libopenblas.a -lpthread

关于c++ - 如何将 lapack 和 BLAS 库链接到 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886290/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com