c - 如何使用lapack库解决c中矩阵乘法的链接器错误?

标签 c visual-c++ matrix-multiplication

我使用 lapack 库进行了矩阵乘法运算,但出现如下错误。谁能帮我?

"error LNK2019: unresolved external symbol "void __cdecl dgemm(char,char,int *,int *,int *,double *,double *,int *,double *,int *,double *,double *,int *)" (?dgemm@@YAXDDPAH00PAN1010110@Z) referenced in function _main"
1>..\bin\matrixMultiplicationUsingLapack.exe : fatal error LNK1120: 1 unresolved externals

我在下面发布我的代码

    # define matARowSize 2      // -- Matrix 1 number of rows
    # define matAColSize 2      // -- Matrix 1 number of cols
    # define matBRowSize 2      // -- Matrix 2 number of rows
    # define matBColSize 2      // -- Matrix 2 number of cols

using namespace std;


   void dgemm(char, char, int *, int *, int *, double *, double *, int *, double *, int *,        double *, double *, int *);

    int main()
    {
    double iMatrixA[matARowSize*matAColSize];   // -- Input matrix 1   {m x n}
    double iMatrixB[matBRowSize*matBColSize];   // -- Input matrix 2   {n x k}
    double iMatrixC[matARowSize*matBColSize];   // -- Output matrix    {m x n * n x     k = m x k}

    double alpha = 1.0f;
    double beta = 0.0f;

    int n = 2;

    iMatrixA[0] = 1;
    iMatrixA[1] = 1;
    iMatrixA[2] = 1;
    iMatrixA[3] = 1;

    iMatrixB[0] = 1;
    iMatrixB[1] = 1;
    iMatrixB[2] = 1;
    iMatrixB[3] = 1;

    //dgemm('N','N',&n,&n,&n,&alpha,iMatrixA,&n,iMatrixB,&n,&beta,iMatrixC,&n);

    dgemm('N','N',&n,&n,&n,&alpha,iMatrixA,&n,iMatrixB,&n,&beta,iMatrixC,&n);

    std::cin.get();
    return 0;
}

最佳答案

由于未解析的引用,这是一个链接器错误。你能显示你的make文件吗?尝试通过将库名称放在末尾来更改您的 make 文件。例如
gcc <program_name> lapack.a -o exec

关于c - 如何使用lapack库解决c中矩阵乘法的链接器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080974/

相关文章:

在c中本地使用指针调用和返回函数

c++ - 在 Boost zip 迭代器上使用 C++17 并行执行算法时,为什么会出现 MSVC 错误?

c - 语法错误 : missing ')' before ';'

julia - 外积矩阵乘法

big-o - 为什么方阵乘法的时间复杂度定义为 O(n^3)?

iOS int类型默认值问题

c - 将像素读入结构数组会导致程序崩溃

c - 在同一变量的初始化中使用变量

c++ - 如何从Visual C++中获取具体的windows服务可执行文件路径

python - NumPy 中的逐元素矩阵乘法