使用 Visual Studio 2013 专业版,我一直在尝试从{em> VC ++ 6项目中debug
旧代码。运行脚本时,error
:
错误LNK1104:无法打开文件' DFOR.lib' Visual Studio
来吧。我试过调查这个问题,似乎需要在项目属性中添加目录,但是,我在计算机中找到目录时遇到了麻烦。它似乎也不在我公司的计算机上,但我一直在寻找如何获得它。
如果你能帮我找到 DF98 目录(这是其他人似乎已经使用过的)或者帮助我,我会非常感激。
答案 0 :(得分:2)
短文件名不多,但quick search表明DFOR.LIB可能是遥远过去的 Compaq Visual Fortran 的一部分。
我对这款产品并不熟悉,但似乎已经被英特尔接管了。您可以尝试在Intel forum for Intel® Visual Fortran Compiler for Windows*中提问,或者阅读relevant posts there already中的一些内容。
更一般地说,documentation for LNK1104提供了对此错误的可能原因和解决方案的一些讨论。
此时你不应该假设你需要找到DFOR.LIB,你需要找出链接器试图打开它的原因。
例如,构建中不必要的#pragma comment (lib...) statement或错误的链接器命令可能会导致链接器尝试读取DFOR.LIB,即使不需要它来完成链接代码文件。
在这种情况下,解决方案是删除(或注释掉)不必要的#pragma comment(lib ...)语句或从链接器命令中删除DFOR.LIB引用并重建项目。
在Visual Studio中,查找不必要的LIB文件引用的可能位置在“项目属性”中链接器|在“附加依赖项”属性中输入。更改此属性时,请记住对所有配置和所有平台(不仅仅是Debug& Win32)执行此操作。对于make文件或其他基于命令的构建链接器,在链接器命令中一次列出一个输入文件而没有特定的开关。
您可能会发现不必要的文件引用的第二个位置是链接器的/DEFAULTLIB command。没有与此开关对应的特定Visual Studio属性,但可以在命令行属性中指定。
另一方面,如果链接器正在读取DFOR.LIB以解析某些引用,那么您需要弄清楚代码的哪个部分导致需要DFOR.LIB。
在简单的情况下,您的代码直接调用在DFOR.LIB中实现的函数,链接器正在尝试解析该函数。链接器的未解析引用列表可能会帮助您找出函数名称。
在不太简单的情况下,您的代码可能正在调用其他库文件中的函数,而该文件又调用DFOR.LIB中的函数(或函数)。
在这两种情况下,链接器/VERBOSE和/FORCE选项可以帮助您收集更多数据。
一旦您知道代码的哪一部分导致需要链接到DFOR.LIB,您就可以决定如何处理它。