Проблема такая. Вызываю из проги на Си++ функцию из фортрановской библиотеки.
Соответственно создаю для неё заголовочный файл, где меняю integer на int *, double на double *, ну и тд ...
типа вот так
extern "C" {
void dnaupd_(int*ido, char*bmat, int*n, char *which,
int*nev, double *tol, double *resid,
int *ncv, double *v, int*ldv,
int *iparam, int *ipntr,
double *workd, double *workl, int *lworkl, int *info);
}
библиотека собирается g77 (gcc-3.4.4) с опциями -O2 -g.
Если эта функция вызывается из .c файла, то всё работает без проблем,
если она вызывается из .cpp файла и проект собирается с оптимизацией выше чем -O0, то вызов функции возвращает неверные значения
Если собирать весь проект с -O0 или собирать другим компилятором (msvc не зависимо от опций), то всё ok.
Если собрать отдельно .cpp файлик с вызовом с -O0, а весь проект с -O, то опять возникает хрень.
Из-за чего такое дерьмо может происходить?
Ответ на:
комментарий
от anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Компиляция программы на C++ с использованием статических библиотек (2016)
- Форум Взаимодействие фортрана и Си. (2011)
- Форум Фортран (2008)
- Форум Фортран (2006)
- Форум ФОРТРАНа-тред (2013)
- Форум Компилятор Фортрана (2005)
- Форум Любите фортран? (2003)
- Форум фортран, вопрос производительности (2011)
- Форум фортран, синтаксис — переименование (2011)
- Форум [фортран]пара вопросов (2011)