Visual studio 2010 将Fortran转换为C(使用f2c)时链接出错

Visual studio 2010 将Fortran转换为C(使用f2c)时链接出错,visual-studio-2010,visual-c++,linker,fortran,f2c,Visual Studio 2010,Visual C++,Linker,Fortran,F2c,我正试图建立一个项目,主要是C,但有一些Fortran子程序。代码很旧,我正试图让它在现代机器上工作。我的主函数调用一个外部函数 extern void __stdcall mainlhs(void); 该函数是用Fortan编写的子程序 subroutine mainlhs 我想使用f2c转换Fortran代码(其中包含此子例程和其他子例程),并将结果放入我的项目中 f2c转换代码,生成的C代码进行编译。当我尝试构建项目时,有几个链接错误 Error 35 error LNK2019

我正试图建立一个项目,主要是C,但有一些Fortran子程序。代码很旧,我正试图让它在现代机器上工作。我的主函数调用一个外部函数

extern void __stdcall mainlhs(void);
该函数是用Fortan编写的子程序

subroutine mainlhs
我想使用f2c转换Fortran代码(其中包含此子例程和其他子例程),并将结果放入我的项目中

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
这些函数不会出现在原始Fortran代码中,也不会出现在其他任何地方。我只在netlib的f2c源代码中找到了它们的引用


感谢您的帮助

我认为您还需要链接libf2c中的函数,该函数可从Netlib获得,如所述。

谢谢,这很有效。但是现在libf2c中的一个文件产生了一个链接错误,我可以在libf2c的任何地方找到这个函数。c调用一个名为pause()的函数,该函数在任何地方都找不到。错误85错误LNK2019:函数\u s\u paus C:\Users\giazlas\Documents\Socrates Support\projects\lhsforc\lhsforc\s\u paus.obj中引用的未解析外部符号\u pause查找暂停调用,看看是否可以删除它们。通常情况就是这样。或者编写自己的暂停。我在VS2008中使用
nmake
libf2c
运行
makefile.vc
生成
vcf2c.lib
。我将该文件复制到我的项目目录中,然后将其添加到
配置属性/Linker/Input/Additional Dependencies
,但我仍然得到代码中调用的所有IO和数学函数的未解析外部符号:
s_rsue,e_rsue,do_uio,f_close,do_lio,f_open,pow,sqrt,log,exp,cos
,等等,我做错了什么?