请教一个CLAPACK的程序编译问题。

发布于 2022-10-15 07:24:05 字数 2236 浏览 19 评论 0

hi, 我刚装了CLAPACK-3.2.1,但是在编译一个程序的时候出现了很多错误,想请教一下怎么解决。

我把各种静态链接库都放好位置了(/usr/local/lib/),还把头文件也放好位置了(/usr/local/include)。

g++ clapacktest.cc -lcblas -lclapack -llibf2c

/usr/local/lib/libclapack.a(sgetrf.o): In function `sgetrf_':
sgetrf.c:(.text+0x45c): undefined reference to `f2c_strsm'
sgetrf.c:(.text+0x524): undefined reference to `f2c_sgemm'
/usr/local/lib/libclapack.a(sgetrs.o): In function `sgetrs_':
sgetrs.c:(.text+0x194): undefined reference to `f2c_strsm'
sgetrs.c:(.text+0x1cf): undefined reference to `f2c_strsm'
sgetrs.c:(.text+0x303): undefined reference to `f2c_strsm'
sgetrs.c:(.text+0x33e): undefined reference to `f2c_strsm'
/usr/local/lib/libclapack.a(sgetf2.o): In function `sgetf2_':
sgetf2.c:(.text+0x180): undefined reference to `f2c_isamax'
sgetf2.c:(.text+0x1ca): undefined reference to `f2c_sswap'
sgetf2.c:(.text+0x329): undefined reference to `f2c_sger'
sgetf2.c:(.text+0x3b5): undefined reference to `f2c_sscal'
collect2: ld return 1

谢谢。我的程序如下:
#include <iostream>
using namespace std;
extern "C"
{
#include <f2c.h>
#include <clapack.h>
}

int
main (void)
{
  integer M = 3;
  integer N = 1;
  real a[9] = { 4, 3, 11, 2, -1, 0, -1, 2, 3 };
  real b[3] = { 2, 10, 8 };
  integer lda;
  integer ldb;
  integer INFO;
  lda = M;
  ldb = M;
  integer ipiv[M];

  sgesv_ (&M, &N, a, &lda, ipiv, b, &ldb, &INFO);
  if (INFO == 0)
    {
      for (int i = 0; i < M; i++)
        {
          cout << b[i] << endl;
        }
    }
  else
    {
      cout << "Failed." << endl;
    }
  return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文