Я создал код множественности матрицы для присваивания, но не смог заставить функцию работать, поэтому я подозреваю, что это неправильно связанная библиотека BLAS.
В OS X BLAS встроен в Accelerate Framework, поэтому в makefile я связал библиотеку с помощью -framework Accelerate, а в cpp я также включил заголовок с помощью #include
Во время компиляции моя ошибка:
Undefined symbols for architecture x86_64:
"dgemm_(char*, char*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*)"
Итак, я создал простой тестовый код, но во время компиляции все равно получаю ошибку:
test_2.cpp:35:3: error: use of undeclared identifier 'dgemm_'
dgemm_(&TRANSA, &TRANSB, &M, &N, &K, &ALPHA, A, &LDA, B, &LDB, &BETA, ...
^
1 error generated.
Мой простой тестовый код скомпилирован с помощью
clang++ -o test_2.exe test_2.cpp -framework Accelerate
Мой простой код:
#include
#include
#include
#include
#include
#include
#include
#ifdef __APPLE__
#include
#else
#include
#endif
using namespace std;
int main( int argc, char **argv )
{
int n=10;
int N=n;
double *A = (double*) malloc( n * n * sizeof(double) );
double *B = (double*) malloc( n * n * sizeof(double) );
double *C = (double*) malloc( n * n * sizeof(double) );
char TRANSA = 'N';
char TRANSB = 'N';
int M = N;
int K = N;
double ALPHA = 1.;
double BETA = 0.;
int LDA = N;
int LDB = N;
int LDC = N;
dgemm_(&TRANSA, &TRANSB, &M, &N, &K, &ALPHA, A, &LDA, B, &LDB, &BETA, C, &LDC);
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/333 ... yosemite-1
Невозможно связать BLAS с Accelerate Framework во время компиляции — OS Yosemite 10.0.5 ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Установка библиотек C++ «Boost» и «BLAS» для проекта Python не удалась в Windows.
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-