Типы данных в Accelerate.framework - PullRequest
0 голосов
/ 18 сентября 2010

Я работаю над программой, которая использует платформу Accelerate (для LAPACK), и у меня есть несколько проблем.Код написан на C, но должен включать заголовки C ++.Я переименовал файл в .cpp, но это вызвало две ошибки, показанные ниже.

C++ Error Image

Поэтому я понял, что попытался #include <Accelerate/Accelerate.h> включить заголовки, так как наш кодер LAPACKdid был перепечатывать определения (dgemm_(), dposv_(), etc.) в начале файла и полагаться на компилятор / компоновщик, чтобы разобраться.Я прокомментировал их и только что сделал #include.Получилось следующее:

Accelerate Error Image

Итак, как мне использовать функции LAPACK, используя Accelerate в файле C ++?Я не очень знаком с LAPACK, поэтому я не уверен, как обычно работает этот фреймворк.

1 Ответ

2 голосов
/ 18 сентября 2010

Вы должны использовать вызовы dgemm_ и dposv_, используя тип __CLPK_integer или long вместо int.Ошибка в том, что long* не может быть неявно преобразован в int* в C ++.

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;
...