当我使用Compaq Visual Fortran编译时,我得到这些错误(当它启动链接器进程时)应该位于我认为已添加到工作区的.lib文件中:
X30XFULL.OBJ : error LNK2001: unresolved external symbol _BCON@4
X30XFULL.OBJ : error LNK2001: unresolved external symbol _RCON@16
根据我google的地方,看起来Compaq Visual Fortran(版本6,FYI)找不到库文件......
我的主要问题是,我该如何使用它们?可能还有其他丢失的文件吗?这是我尝试过的:
一点背景:
我有这个在90年代最后编译的Fortran可执行文件。根据我的研究,它是一个16位编译的,不适用于64位机器。
原始代码至少从我们可以收集到的16位编译库中获得。没有原始编译器,我们无法弄清楚如何查看或使用它们。我们还有一个(半)等效的库文件,它实际上是一个.FOR文件。据我们所知,BPROP.FOR和BPROP.LIB可以是同一个文件(它们位于相同的源代码区域中)。如果我们使用BPROP.FOR文件,程序可以编译,但是我们遇到的结果有问题,我们已经追溯到该文件中使用/收集/处理的信息。
但是,我们确实有32位版本(我们认为)是相同的.lib文件。所以,我们正在尝试使用它,这是用于编译Fortran可执行文件的结果,导致上述错误。
答案 0 :(得分:0)
找到答案,至少对我而言。我不知道如果其他人找到这些答案,那么推断是多么容易,但这就是我解决它的方法。
使用旧的Fortran库,我所要做的就是将它们添加到FileList视图中,该视图包含所有不同的fortran文件(.FOR等)。我没有像我提到的那样在设置中添加这些库,但这也可以。除此之外,我不需要添加任何额外的声明或任何类似的声明。
我们所发现的是调用那些.LIB文件的相关函数(BCON和RCON)需要一个额外的参数。我发现这一点的唯一方法是检查使用这些库的其他源代码,所以如果有人像我一样被卡住,那将是一个很好的起点。或者,如果您可以在十六进制编辑器中读取.lib文件,则可以创建函数及其参数。
当然,如果您拥有所述参数的原始源代码,那就更好了。 :)