包括对c ++代码的LAPACK

时间:2014-12-04 12:34:23

标签: c++ qt lapack

我试图在我的Mac上的Qt环境中执行以下简单的c ++代码。我想要的代码是使用LAPACK库来进行简单的数学运算。我刚刚考虑过" dot product"函数来测试这个案例并得到了

"找不到架构x86_64"的符号;和 "链接器命令失败,退出代码1(使用-v查看调用)错误。

顺便说一下,我很确定我正在重复可能导致这些错误的文件或头文件名。

任何人都知道如何克服这个问题?提前致谢。

#include <iostream>
#include <vector>
#include <Accelerate/Accelerate.h>


extern "C"
{
  double ddot_ (const int*, const double*, const int*, const double*, const int*);
}



int main()
{
  std::vector<double> values(2, 1.);


  int N = 2;
  int one = 1;

  double norm = ddot_(&N, &values[0], &one, &values[0], &one);
  std::cout << "Hello world " <<norm << std::endl;
  return 0;

}

1 个答案:

答案 0 :(得分:0)

函数ddot_()是Blas库的一部分。它不是Lapack库的一部分。因此,使用ddot_()的程序应该链接到Blas库。例如,您发布的c ++程序可以通过以下方式编译:

g++ main.cpp -o main -lblas

提供#include <Accelerate/Accelerate.h>已注释。