1

我是 C++ 新手,我正在使用 Eclipse 编写脚本。我的操作系统是 Ubuntu。我需要为我的代码部分使用 LAPACKE 包。然而,我无法设法链接 Eclipse 和 LAPACKE。我正在尝试编译以下示例代码:

#include <stdio.h>
#include <lapacke.h>

int main (int argc, const char * argv[])
{
double a[5][3] = {1,1,1,2,3,4,3,5,2,4,2,5,5,4,3};
double b[5][2] = {-10,-3,12,14,14,12,16,16,18,16};
lapack_int info,m,n,lda,ldb,nrhs;
int i,j;

m = 5;
n = 3;
nrhs = 2;
lda = 3;
ldb = 2;

info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);

for(i=0;i<n;i++)
{
   for(j=0;j<nrhs;j++)
   {
      printf("%lf ",b[i][j]);
   }
   printf("\n");
}
return(info);
}

我无法编译代码,因为我的 Eclipse 抛出错误:“Udefined reference to LAPACKE_dgels”。我试图将 Eclipse 链接到 LAPACKE,为此我在 Eclipse 的“路径和符号”选项卡中添加了 LAPACKE 头文件的路径。任何人都可以帮助我解决这个问题需要做些什么吗?我应该错过一些东西......

4

1 回答 1

0

我假设您正在使用 gcc 编译器。我猜你在编译参数中缺少-llapack标志。如果它不起作用,请尝试-llapacke. 此标志 ( -l[LibraryName]) 告诉链接器使用外部二进制文件(请参阅:gcc:-L 和 -l 选项之间的区别以及如何提供库的完整路径)。

查看这个问题以了解如何在 Eclipse 中添加编译器标志:如何在 Eclipse IDE 中添加编译器选项

于 2021-01-27T16:36:50.750 回答