Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Вызов процедуры из .f90 в С++ |
Автор: vitaliska 21.4.2006, 00:53 |
Здравствуйте! Никак не могу решить проблему с линковкой при смешанном программировании. Есть процедуры на фортране (Intel Fortran Compiler 8.1 /интегрирован в MVS 2003/). Нужно вызвать их в C++ (MVS 2003). Беру пример из книги: Файл f90: SUBROUTINE FR1(N, M) Рњ = N * N RETURN END INTEGER FUNCTION FF1(N) FF1 = N * N * N RETURN END Файл .cpp #include <iostream.h> extern "C" { void __stdcall FRl(int *, int *); int __stdcall FFl(int *); } void main { int трали-вали FRl(&n,&что-нибудь) и так далее... } Теперь: в проекте и в директории у меня .cpp и .f90. Что еще нужно для линковки? Никаких библиотек нет. В чем причина error lnk2019 unresolved ... Почему не понимает обращение к процедуре? Что я забыл сделать? Нужен ли хедер-файл? Если да то почему про него нет ни в одной книге и ни в одном примере в сети. По гуглу смотрел - практически одинаковые примеры и нет полного описания как что соединять нужно - только файлы фортрана и си++. Объясните пожалуйста... заранее спасибо! |
Автор: Earnest 21.4.2006, 07:45 |
Из сообщения линкера "unresolved ..." можно сделать вывод, чего же ждет компоновщик. А ты его как раз не привел. |
Автор: vitaliska 21.4.2006, 10:54 |
Моя процедура в f90 называется PLUS. Все по аналогии с примером выше. Вот что пишет компоновщик: Проект: Use_oper Use_oper error LNK2019: unresolved external symbol _PLUS@8 referenced in function _main Use_oper fatal error LNK1120: 1 unresolved externals Вот с dll кое-как работает через _declspec(dllimport), но мне бы хотелось работать напрямую с процедурами без создания dll. |
Автор: MIG 21.4.2006, 15:05 |
хрень какая-то |
Автор: vitaliska 21.4.2006, 18:41 |
MIG - твой комментарий нам очень помог...спасибо... Везде пишут примеры на f и на си, а как дальше все это выполнять (OC - xp sp2) - опускается... |