Обновить
ошибка: пустое значение не игнорируется, как должно быть
Новое обновление
Я попытался создать экспериментальную функцию для тестирования dgesv, но там говорится, что он не может найти -llapack сейчас, что странно, потому что я установил его через yum.
У меня возникли проблемы с вызовом дгесва из LAPACK. В настоящее время я пробовал это:
extern "C"{
void dgesv(int *N, int *NRHS, double *A,
int *LDA, int *IPIV,
double *B, int *LDB, int *INFO);
}
dgesv(&lengthA, &widthF, A, &leadingDemA,
permMat, B, &leadingDemB, &errorCheck);
Проблема даже когда я компилирую с g++ program -llapack
Компилятор кричит на меня.
Что я делаю неправильно?
Есть пара проблем с кодом, который вы разместили. Сначала декларация dgesv
отсутствует точка с запятой. Вы также проходите мимо A
, B
а также permMat
неправильно. Скобки следует использовать только тогда, когда переменные объявлены или определены, как показано ниже
char a[10];
void f(char a[]);
Следующие изменения должны позаботиться о проблемах компиляции, если код, который вы опубликовали, является реальным кодом, который вы используете.
extern "C"{
void dgesv(int *lengthA, int *widthF, double *A,
int *leadingDemA, double *permMat,
double *B, int *leadingDemB, int *errorCheck); // <-- semi-colon
}
dgesv(&lengthA, &widthF, A, &leadingDemA, permMat, B, &leadingDemB, &errorCheck);
// ^^ ^^ ^^
Других решений пока нет …