更新
错误:无法忽略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
编译,编译器也会对我大喊大叫。
我做错了什么?
答案 0 :(得分:0)
您发布的代码存在一些问题。首先,dgesv
的声明缺少分号。您还错误地传递了A
,B
和permMat
。只有在声明或定义变量时才能使用括号
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);
// ^^ ^^ ^^