Accelerate.framework中的数据类型

时间:2010-09-18 14:54:10

标签: c++ lapack

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

C++ Error Image

所以我后来意识到尝试#include <Accelerate/Accelerate.h>包含头文件,因为我们的LAPACK编码器所做的是在文件开头重新键入定义(dgemm_(), dposv_(), etc.)并依赖于编译器/链接器解决问题。所以我评论了那些,只是#include。结果是:

Accelerate Error Image

那么,如何在C ++文件中使用Accelerate来使用LAPACK函数?我对LAPACK并不熟悉,所以我不确定该框架通常如何工作。

1 个答案:

答案 0 :(得分:2)

您应该使用dgemm_dposv_类型而不是__CLPK_integer来使用来电longint。该错误是因为long*无法在C ++中隐式转换为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;