我正在使用英特尔Visual Fortran Composer XE 2011在MS Visual Studio 2008中构建我的Fortran项目。我收到链接器错误:LNK2019未解析的外部符号。
我在我的obj文件上做了一个dumpbin,我的所有符号(在CVF调用约定下)都导出为_symbol1,_symbol2,_symbol3等,除了三个随机的符号前缀有一些东西。
例如:_ imp _symbol4,_ imp _symbol5,_ imp _symbol6
起初我怀疑我的调用约定一定是问题,但是如果它是我的调用约定,那么所有其他符号是否也会以imp为前缀导出?这是随机的,其中三个出口奇怪,我不太明白发生了什么。任何帮助将不胜感激。
答案 0 :(得分:0)
与这些符号对应的实体可能具有DLLIMPORT属性。链接步骤可能缺少相关的导入库。
答案 1 :(得分:0)
我发现问题是因为当我真的不需要它们时,我为这些符号提供了一些DLL导出语句。它使编译器期望_ imp _sybmol,因为我使用语句导出它们:
!DEC$ATTRIBUTES STDCALL:: YOURSYMBOL
!DEC$ATTRIBUTES DLLEXPORT:: YOURSYMBOL
我刚删除它们,链接器错误就消失了。