0

我正在使用 Intel Visual Fortran Composer XE 2011 在 MS Visual Studio 2008 中构建我的 Fortran 项目。我收到链接器错误:LNK2019 未解析的外部符号。

我在我的 obj 文件上做了一个垃圾箱,我所有的符号(在 CVF 调用约定下)都导出为 _symbol1、_symbol2、_symbol3 等等,除了三个随机的带有一些前缀的符号。

例如:_ imp _symbol4、_ imp _symbol5、_ imp _symbol6

起初我怀疑我的调用约定一定是问题,但如果这是我的调用约定,难道不是所有其他符号都以 imp 为前缀导出了吗?它是如此随机,以至于其中三个奇怪地导出,我不太明白发生了什么。任何帮助,将不胜感激。

4

2 回答 2

0

对应于这些符号的实体可能具有 DLLIMPORT 属性。链接步骤可能缺少相关的导入库。

于 2012-09-26T21:41:11.387 回答
0

我发现问题是因为当我真的不需要这些符号时,我有一些 DLL 导出语句。它使编译器期望 _ imp _sybmol 因为我使用以下语句导出它们:

    !DEC$ATTRIBUTES STDCALL:: YOURSYMBOL
!DEC$ATTRIBUTES DLLEXPORT:: YOURSYMBOL

我刚刚删除了它们,链接器错误就消失了。

于 2012-11-29T19:36:25.387 回答