0

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

C++ 错误图像

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

加速错误图像

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

4

1 回答 1

2

您应该使用 calldgemm_dposv_使用类型__CLPK_integerorlong而不是int. 该错误是因为 along*不能int*在 C++ 中隐式转换为 a。

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;
于 2010-09-18T15:02:34.993 回答