回 帖 发 新 帖 刷新版面

主题:[讨论]用vs2008和ivf11进行c和fortran的混合编程,出现lnk2019错误

我在一个方案里建了两个工程,一个是c++的工程,另一个是fortran工程,都是控制台项目,在编译工程中出现两个错误:
1. error LNK2019:无法解析的外部符号_MAIN_,该符号在函数_main中被引用        libifcoremt.lib(for_main.obj)
2. fatal error lnk1120: 1个无法解析的外部命令             fortran.exe
哪位高手帮着给看看,不胜感激!!!
还有就是我用的VS2008与ivf混合编程,目前都建的是控制台项目,不知道对不对,如果不对,应该怎么弄,还望高手给指出来,谢谢啦!我的qq是1428027644

回复列表 (共2个回复)

沙发

没有学习过fortran,帮不上太多忙。

无法解析的外部符号_MAIN_,意思是连接器认为需要有一个符号(具体来说,就是函数名或者变量名)叫做_MAIN_(因为你在_main这个函数里使用了它),但是实际上却找不到名叫_MAIN_的符号。
先看看你的程序是从哪里开始运行的,如果是从C++开始运行,则检查C++代码是否有main函数,并且检查建立C++工程时是否是选择的“Win32 Console Application”。如果是从fortran开始运行,这个我就不清楚了。

板凳

混编怎能两个都用控制台呢?得是一个用LIB另一个用控制台才行的。
建议最好用最新版本的IVF,然后充分利用:
ISO_C_BINDING模块:)
以及形如:
subroutine lgs()BIND(C,NAME='lgs')
end subroutine
这样的东东:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册