如何从LAPACK调用desgv

时间:2013-05-20 03:12:55

标签: c++ lapack

更新

错误:无法忽略void值,因为它应该是

新更新

我试图制作一个实验函数来测试dgesv,但它说它现在找不到-llapack,这很奇怪,因为我是通过yum安装的。

我在从LAPACK调用dgesv时遇到了一些麻烦。目前,我试过这个:

extern "C"
{
    void dgesv(int *N, int *NRHS, double *A,
          int *LDA, int *IPIV,
          double *B, int *LDB, int *INFO);
}

dgesv(&lengthA, &widthF, A, &leadingDemA,
          permMat, B, &leadingDemB, &errorCheck);

问题是即使我用g++ program -llapack编译,编译器也会对我大喊大叫。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您发布的代码存在一些问题。首先,dgesv的声明缺少分号。您还错误地传递了ABpermMat。只有在声明或定义变量时才能使用括号

char a[10];
void f(char a[]);

只要您发布的代码是您正在使用的实际代码,以下更改就应该解决编译问题。

extern "C"
{
    void dgesv(int *lengthA, int *widthF, double *A,
        int *leadingDemA, double *permMat,
        double *B, int *leadingDemB, int *errorCheck); // <-- semi-colon
}

dgesv(&lengthA, &widthF, A, &leadingDemA, permMat, B, &leadingDemB, &errorCheck);
//                        ^^                    ^^  ^^
相关问题