错误 LNK1104: 无法打开文件 'DFOR.lib' Visual Studio
Error LNK1104: cannot open file 'DFOR.lib' Visual Studio
在 Visual Studio 2013 专业工作,我一直在尝试 debug
来自 VC+ 的旧代码+ 6 个项目。当 运行 脚本时, error
:
Error LNK1104: cannot open file 'DFOR.lib' Visual Studio
上来。我已尝试调查该问题,似乎该目录需要添加到项目属性中,但是,我无法在我的计算机中找到该目录。它似乎也不在我一直在使用的公司计算机上,但我很难找到如何获取它。
如果你能帮我找到DF98目录(其他人好像都用过)或者帮我找一下,我将不胜感激。
一个短文件名没什么好说的,但是 quick search 表明 DFOR.LIB 可能是 Compaq Visual Fortran 的一部分遥远的过去。
我不熟悉那个产品,但它似乎在某个时候被英特尔接管了。您可以尝试在 Intel forum for Intel® Visual Fortran Compiler for Windows* or read some of the relevant posts there already.
中提问
更笼统地说,documentation for LNK1104 提供了一些关于此错误的可能原因和解决方案的讨论。
此时你不应该假设你需要找到 DFOR.LIB,你需要弄清楚为什么 link 人试图打开它。
不必要的 LIB 文件
例如,构建中不必要的 #pragma comment (lib...) statement 或错误的 linker 命令可能会导致 linker 尝试阅读 DFOR.LIB,即使它不是不需要完成 link 您的代码文件。
在这种情况下,解决方案是删除(或注释掉)不必要的#pragma comment (lib...) 语句或从 linker 命令中删除 DFOR.LIB 引用并重建您的项目。
在 Visual Studio 中,找到不必要的 LIB 文件引用的可能位置是项目属性 |链接器 |在"Additional Dependencies"中输入属性。更改此 属性 时,请记住对所有配置和所有平台(不仅仅是 Debug 和 Win32)都这样做。对于 make 文件或其他基于命令的构建,linker 输入文件在 linker 命令中一次列出一个,没有特定的开关。
您可能会发现不必要的文件引用的第二个地方是链接器的 /DEFAULTLIB command。这个开关没有具体的 Visual Studio 属性 对应,但是可以在命令行中指定 属性.
需要 LIB 文件
另一方面,如果 link 读者正在阅读 DFOR.LIB 来解决一些参考问题,那么您需要弄清楚代码的哪一部分导致需要 DFOR.LIB .
在简单的情况下,您的代码直接调用 DFOR.LIB 中实现的函数,link 用户正在尝试解析该函数。 linker 的未解析引用列表可能会帮助您找出函数名称。
在不太简单的情况下,您的代码可能会调用某个其他库文件中的函数,而该库文件又会调用 DFOR.LIB 中的一个(或多个)函数。
在这两种情况下,link 和 /VERBOSE and /FORCE 选项可能会帮助您收集更多数据。
一旦您知道代码的哪一部分导致需要 link 到 DFOR.LIB,您就可以决定如何处理它。
- 您可以重写代码以在您有权访问的某些包中使用不同的函数
- 您可能会找到该函数的更现代(和受支持)的实现 - 例如在 Intel 的 Visual Fortran 实现中
- 您可能会找到 Compaq Visual Fortran 的许可副本(并希望它仍能在现代系统上运行)
- 您可能会发现 Visual Fortran 是一个转移注意力的问题,而您的 DFOR.LIB 来自一些完全不同的包
在 Visual Studio 2013 专业工作,我一直在尝试 debug
来自 VC+ 的旧代码+ 6 个项目。当 运行 脚本时, error
:
Error LNK1104: cannot open file 'DFOR.lib' Visual Studio
上来。我已尝试调查该问题,似乎该目录需要添加到项目属性中,但是,我无法在我的计算机中找到该目录。它似乎也不在我一直在使用的公司计算机上,但我很难找到如何获取它。
如果你能帮我找到DF98目录(其他人好像都用过)或者帮我找一下,我将不胜感激。
一个短文件名没什么好说的,但是 quick search 表明 DFOR.LIB 可能是 Compaq Visual Fortran 的一部分遥远的过去。
我不熟悉那个产品,但它似乎在某个时候被英特尔接管了。您可以尝试在 Intel forum for Intel® Visual Fortran Compiler for Windows* or read some of the relevant posts there already.
中提问更笼统地说,documentation for LNK1104 提供了一些关于此错误的可能原因和解决方案的讨论。
此时你不应该假设你需要找到 DFOR.LIB,你需要弄清楚为什么 link 人试图打开它。
不必要的 LIB 文件
例如,构建中不必要的 #pragma comment (lib...) statement 或错误的 linker 命令可能会导致 linker 尝试阅读 DFOR.LIB,即使它不是不需要完成 link 您的代码文件。
在这种情况下,解决方案是删除(或注释掉)不必要的#pragma comment (lib...) 语句或从 linker 命令中删除 DFOR.LIB 引用并重建您的项目。
在 Visual Studio 中,找到不必要的 LIB 文件引用的可能位置是项目属性 |链接器 |在"Additional Dependencies"中输入属性。更改此 属性 时,请记住对所有配置和所有平台(不仅仅是 Debug 和 Win32)都这样做。对于 make 文件或其他基于命令的构建,linker 输入文件在 linker 命令中一次列出一个,没有特定的开关。
您可能会发现不必要的文件引用的第二个地方是链接器的 /DEFAULTLIB command。这个开关没有具体的 Visual Studio 属性 对应,但是可以在命令行中指定 属性.
需要 LIB 文件
另一方面,如果 link 读者正在阅读 DFOR.LIB 来解决一些参考问题,那么您需要弄清楚代码的哪一部分导致需要 DFOR.LIB .
在简单的情况下,您的代码直接调用 DFOR.LIB 中实现的函数,link 用户正在尝试解析该函数。 linker 的未解析引用列表可能会帮助您找出函数名称。
在不太简单的情况下,您的代码可能会调用某个其他库文件中的函数,而该库文件又会调用 DFOR.LIB 中的一个(或多个)函数。
在这两种情况下,link 和 /VERBOSE and /FORCE 选项可能会帮助您收集更多数据。
一旦您知道代码的哪一部分导致需要 link 到 DFOR.LIB,您就可以决定如何处理它。
- 您可以重写代码以在您有权访问的某些包中使用不同的函数
- 您可能会找到该函数的更现代(和受支持)的实现 - 例如在 Intel 的 Visual Fortran 实现中
- 您可能会找到 Compaq Visual Fortran 的许可副本(并希望它仍能在现代系统上运行)
- 您可能会发现 Visual Fortran 是一个转移注意力的问题,而您的 DFOR.LIB 来自一些完全不同的包