我试图在我的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;
}
答案 0 :(得分:0)
函数ddot_()
是Blas库的一部分。它不是Lapack库的一部分。因此,使用ddot_()
的程序应该链接到Blas库。例如,您发布的c ++程序可以通过以下方式编译:
g++ main.cpp -o main -lblas
提供#include <Accelerate/Accelerate.h>
已注释。