Ошибка при связывании при конвертации Фортрана в C (при использовании f2c)
Я пытаюсь построить проект, который в основном C, но имеет некоторые функции Fortran. Код старый, и я пытаюсь заставить его работать на современных машинах. Моя основная функция вызывает внешнюю функцию
extern void __stdcall mainlhs(void);
Функция является подпрограммой, написанной на фортане
subroutine mainlhs
Я хочу преобразовать код Фортрана (который содержит эту и другие подпрограммы), используя f2c, и поместить результат в мой проект.
f2c конвертирует код, а полученный C-код компилируется. Когда я пытаюсь построить проект, возникает несколько ошибок компоновки.
Error 35 error LNK2019: unresolved external symbol _e_wsle referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 36 error LNK2019: unresolved external symbol _s_wsle referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 37 error LNK2019: unresolved external symbol _f_clos referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 38 error LNK2019: unresolved external symbol _e_rsle referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 39 error LNK2019: unresolved external symbol _do_lio referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 40 error LNK2019: unresolved external symbol _s_rsle referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 41 error LNK2019: unresolved external symbol _f_open referenced in function _mainlhs_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 42 error LNK2019: unresolved external symbol _s_stop referenced in function _chlsky_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 43 error LNK2019: unresolved external symbol _e_wsfe referenced in function _gaminv_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 44 error LNK2019: unresolved external symbol _do_fio referenced in function _gaminv_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 45 error LNK2019: unresolved external symbol _s_wsfe referenced in function _gaminv_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 46 error LNK2019: unresolved external symbol _pow_dd referenced in function _gamcdf_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 47 error LNK2019: unresolved external symbol _pow_ri referenced in function _moment_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Error 48 error LNK2019: unresolved external symbol _s_paus referenced in function _betpdf_ C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\UNCER.obj
Эти функции не появляются ни в исходном коде Фортрана, ни где-либо еще. Я нашел только ссылки на них в источнике netlib f2c
Спасибо за вашу помощь
1 ответ
Я думаю, что вам также нужно связать функции в libf2c, который доступен из Netlib, как описано на http://www.netlib.org/f2c/README.