0

对于初学者,我经历了几个类似的问题和主题,但没有找到答案(或者不知道如何应用它)。我正在使用 VS 2019 和最新的 LAPACK。首先,这是我到目前为止所做的:

  • 下载的 LAPACK 仓库
  • 将 cmake 文件更改为也构建 cblas
  • 使用 CMake 生成项目
  • 建立所说的项目(不会让我启动它,所以我猜这就是它应该做的)
  • 将带有头文件的文件夹传递给包含目录 (LIBPATH),将带有 .lib 文件的文件夹传递给库目录 (LIB) 以及 .lib 文件本身(lapack.lib、lapacke.lib、blas.lib、cblas.lib)作为附加依赖项链接器

然后尝试启动以下代码,只是为了得到“函数_main中引用的未解析的外部符号_cblas_dgemv”:

#include<stdio.h>
#include<math.h>
#include<time.h>

#include <stdlib.h>

#include "cblas.h"
#include <complex>
#define lapack_complex_float std::complex<float>
#define lapack_complex_double std::complex<double>
#include "lapacke.h"


#define n 2000
#define n2 n*n

int main()
{
    double* Af = (double*)calloc(n2, sizeof(double));

    double* x = (double*)calloc(n, sizeof(double));
    for (int i = 0; i < n; i++)
    {
        x[i] = i + 1;
    }

    double* b = (double*)calloc(n, sizeof(double));

    cblas_dgemv(CblasRowMajor, CblasTrans, n, n, 1, Af, n, x, 1, 0, b, 1);
    for (int i = 0; i < 20; i++)
        printf(" b%d = %f\n", i, b[i]);
}

根据在网上找到的一些随机建议,我还尝试将编译类型从默认更改为 C,但结果是其他依赖项产生了数千个错误(诸如“原子”之类的文件,不太确定,但我怀疑它们来自基础库) .

4

0 回答 0