使用 LAPACK 库编译的 C++ 程序
c++ program compile with LAPACK library
我是 C++ 编程新手,
我有一个从互联网上获取的 C++ 代码。它使用 LAPACK 库
我已经安装了LAPACK和BLAS(希望安装成功)
:/usr/local/lib$ ls
libblas.a liblapack.a python3.6
程序是这样的,
#include <iostream>
#include "lapacke.h"
using namespace std;
int main()
{
char TRANS = 'N';
int INFO=3;
int LDA = 3;
int LDB = 3;
int N = 3;
int NRHS = 1;
int IPIV[3] ;
double A[9] = { 1, 2, 3, 2, 3, 4, 3, 4, 1 };
double B[3] = {-4,-1,-2 };
cout << "compute the LU factorization..." << endl << endl;
LAPACK_dgetrf(&N,&N,A,&LDA,IPIV,&INFO);
if(INFO)
{
cout << "solving the system..."<< endl << endl;
}else{
printf("solving the system...");
dgetrs_(&TRANS,&N,&NRHS,A,&LDA,IPIV,B,&LDB,&INFO);
if(INFO)
{
cout << "an error occured : "<< INFO << endl << endl;
}else{
cout << "print the result : {";
int i;
for (i=0;i<N;i++)
{
cout << B[i] << " ";
}
cout << "}" << endl << endl;
}
}
cout << "program terminated." << endl << endl;
return 0;
}
我尝试使用这个命令编译它,
g++ main.cpp -o run -llapack
但这是我得到的输出,
/usr/bin/ld: cannot find -llapack
collect2: error: ld returned 1 exit status
我正在使用 Ubuntu 18.04
请帮我解决一下这个。
谢谢
听起来您的系统未设置为搜索 /usr/local/lib 图书馆。
您可以在编译命令中添加-L/usr/local/lib
。
如果你需要安装这个库,我建议你使用这个命令:
sudo apt-get install liblapack-dev
我是 C++ 编程新手, 我有一个从互联网上获取的 C++ 代码。它使用 LAPACK 库 我已经安装了LAPACK和BLAS(希望安装成功)
:/usr/local/lib$ ls
libblas.a liblapack.a python3.6
程序是这样的,
#include <iostream>
#include "lapacke.h"
using namespace std;
int main()
{
char TRANS = 'N';
int INFO=3;
int LDA = 3;
int LDB = 3;
int N = 3;
int NRHS = 1;
int IPIV[3] ;
double A[9] = { 1, 2, 3, 2, 3, 4, 3, 4, 1 };
double B[3] = {-4,-1,-2 };
cout << "compute the LU factorization..." << endl << endl;
LAPACK_dgetrf(&N,&N,A,&LDA,IPIV,&INFO);
if(INFO)
{
cout << "solving the system..."<< endl << endl;
}else{
printf("solving the system...");
dgetrs_(&TRANS,&N,&NRHS,A,&LDA,IPIV,B,&LDB,&INFO);
if(INFO)
{
cout << "an error occured : "<< INFO << endl << endl;
}else{
cout << "print the result : {";
int i;
for (i=0;i<N;i++)
{
cout << B[i] << " ";
}
cout << "}" << endl << endl;
}
}
cout << "program terminated." << endl << endl;
return 0;
}
我尝试使用这个命令编译它,
g++ main.cpp -o run -llapack
但这是我得到的输出,
/usr/bin/ld: cannot find -llapack
collect2: error: ld returned 1 exit status
我正在使用 Ubuntu 18.04 请帮我解决一下这个。 谢谢
听起来您的系统未设置为搜索 /usr/local/lib 图书馆。
您可以在编译命令中添加-L/usr/local/lib
。
如果你需要安装这个库,我建议你使用这个命令:
sudo apt-get install liblapack-dev