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