我正在开发一个使用Accelerate框架(用于LAPACK)的程序,我有几个问题。代码是用C编写的,但需要包含C++标头。我将文件重命名为.cpp,但它导致了两个错误,如下所示。

因此,我意识到尝试使用#include <Accelerate/Accelerate.h>来包含头文件,因为我们的LAPACK编码器所做的是重新键入文件开头的定义(dgemm_(), dposv_(), etc.),并依靠编译器/链接器来解决问题。所以我把它们注释掉了,只做了#include。结果是这样的:
那么,如何在C++文件中通过Accelerate使用LAPACK函数?我对LAPACK不是很熟悉,所以我不确定这个框架是如何正常工作的。
发布于 2010-09-18 23:02:35
您应该使用__CLPK_integer或long类型来调用dgemm_和dposv_,而不是int。错误是因为在C++中不能将long*隐式转换为int*。
typedef long int __CLPK_integer;
typedef long int __CLPK_logical;
typedef float __CLPK_real;
typedef double __CLPK_doublereal;
typedef __CLPK_logical (*__CLPK_L_fp)();
typedef long int __CLPK_ftnlen;https://stackoverflow.com/questions/3742122
复制相似问题