0

当我使用 Compaq Visual Fortran 编译时,我得到了这些错误(当它启动链接器进程时),这些错误应该位于我认为我添加到工作区的 .lib 文件中:

X30XFULL.OBJ : error LNK2001: unresolved external symbol _BCON@4
X30XFULL.OBJ : error LNK2001: unresolved external symbol _RCON@16

根据我在哪里搜索过,看起来 Compaq Visual Fortran(版本 6,仅供参考)找不到库文件......

我的主要问题是,我该如何使用它们?可能还有其他丢失的文件吗?这是我尝试过的:

  • 右键单击->在 FileView 窗口中添加文件
  • 在项目->设置下,单击链接选项卡,在输入类别下,在对象/库模块 (bprop.lib rprop.lib) 下添加库文件,并让附加库路径指向文件所在的位置。我也在“资源”选项卡下进行了此操作,并且它显示“其他资源包含目录”,我放置了这些文件所在的目录。
  • 为了覆盖我的基础,我还将这些文件放在项目工作区文件的位置,将生成编译的可执行文件的位置,以及几乎任何我能想到的 CVF 可能会查找这些文件的位置。

一点背景:

我有这个在 90 年代最后一次编译的 Fortran 可执行文件。根据我的研究,它是 16 位编译的,无法在 64 位机器上运行。

至少从我们可以收集到的情况来看,原始代码具有 16 位编译库。如果没有原始编译器,我们无法弄清楚如何查看或使用它们。我们还有一个(半)等效的库文件,它实际上是一个 .FOR 文件。就我们所知,BPROP.FOR 和 BPROP.LIB 可能是同一个文件(它们位于同一个源代码区域)。如果我们使用 BPROP.FOR 文件,该程序可以编译,但我们会遇到问题,我们已经追溯到该文件中使用/收集/处理的信息的结果。

但是,我们确实有 32 位版本(我们认为)是相同的 .lib 文件。因此,我们正在尝试使用它,这是用于编译 Fortran 可执行文件的内容,这会导致上述错误。

4

1 回答 1

0

至少对我来说找到了答案。我不知道如果其他人找到这些答案会很容易推断,但这就是我解决它的方法。

对于旧的 Fortran 库,我所要做的就是将它们添加到包含所有不同 fortran 文件(.FOR 等)的 FileList 视图中。我不必像我提到的那样在设置中添加这些库,但这也可以。除此之外,我不需要添加任何额外的声明或类似的东西。

我们确实发现调用这些 .LIB 文件的有问题的函数(BCON 和 RCON)需要一个额外的参数。我发现这一点的唯一方法是检查使用这些库的其他源代码,所以如果有人像我一样被卡住,那将是一个很好的起点。或者,如果您可以在十六进制编辑器中阅读 .lib 文件,您可以制作函数及其参数。

当然,如果您有上述参数的原始源代码,那就更好了。:)

于 2012-10-31T13:41:15.327 回答