ifort:错误#10037:找不到'link'

时间:2015-10-11 14:09:04

标签: linker fortran intel-fortran

我下载并安装了评估软件: Intel Parallel Studio XE Professional Edition for Fortran Windows.我的系统是64位Windows 7操作系统。在安装过程中,我还被要求下载并安装:Microsoft Visual C++ 2013 Redistributable(x64)- 12.0.21005

我正在尝试使用命令行编译我的源文件。

为了识别命令ifort,我添加了目录:

C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.0.110\windows\bin\intel64

到PATH环境变量。 (此文件夹包含文件ifort.exe)。

然而,当我尝试通过以下命令编译一个简单的“Hello World”程序时:

ifort hello.for

我收到错误:

ifort: error #10037: could not find 'link'

然而,创建了'hello.obj'文件。

我试图修复此错误的步骤(但没有区别):

1)我试图在PATH环境变量中添加目录:

C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.0.110\windows\bin\intel64_gfx

此文件夹包含文件:gfx_linker.exe,我认为该文件是所需的链接器。

2)我尝试更改Visual Studio的配置以添加64位支持,根据史蒂夫莱昂内尔(英特尔)在(https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/300121)中消耗的4个步骤,但是出现的窗口(按下之后) “控制面板”的“卸载或更改程序实用程序”中的更改选项显示没有“x64编译器和工具”复选框选项,只有一个修复按钮选项,没有任何区别。

3)我尝试更新ifort安装,正如Tim Prince在(https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/280266)中所建议的那样。我尝试通过控制面板中的“卸载或更改程序实用程序”来完成此操作。但是在出现的窗口中选择“修复”选项会阻止完成该过程,说明“由于找不到可用的源”而无法进行修复,并选择“修改”选项,在“选择”步骤中阻止了我要修改的组件'(我没有选择启用'下一步'按钮)。

4)在调用ifort之前我试图执行cammand:

"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.0.110\windows\bincompilervars.bat" intel64 vs2013  
正如Steve Lionel(英特尔)在上一个链接中所建议的那样,但得到了错误:

ERROR: Visual Studio 2013 is not found in the system.

现在我没有选择,请求帮助告诉我如何解决ifort无法找到'链接'的错误。

4 个答案:

答案 0 :(得分:2)

您只需使用.p12从命令行编译Fortran文件即可:

ifort或在开始菜单中搜索Start menu > programs > Intel parallel studio XE 2O16 > Intel 64 visual studio mode

打开Intel 64。现在您可以开始使用Intel 64 visual studio mode,它可以正常工作。

如果您想知道如何调用它(使用的参数),请右键单击ifort,然后从菜单中选择Intel 64 visual mode

我上传了这些屏幕截图,只需查看:the first screenshotthe second screenshot

从第二个屏幕截图中注意传递给批处理文件的参数。

注意:根据英特尔文档,第二个参数(open file location)是可选的。

答案 1 :(得分:0)

我的朋友遇到了同样的问题。这是我建议他做的,并且有效。发生这种情况的原因是,您也错过了link.exe和其他相关文件夹中的C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\。因此,您可以使用小型软件everything enter link description here来搜索计算机,以查找Microsoft Visual Studio文件夹中是否缺少link.exe。在这种情况下,您可以从其他人那里复制这些文件,或者只是重新安装Visual Studio并确保一切正确。

答案 2 :(得分:0)

我有同样的问题。

首先将“ C:\ Program Files(x86)\ IntelSWTools \ compilers_and_libraries_2016.0.110 \ windows \ bin”添加到路径。

现在,从Windows命令行运行:Compilervars.bat intel64

它在Windows命令行上设置环境。 现在您可以访问“ ifort”命令,而不会出现链接错误。

答案 3 :(得分:0)

我将首先指出代码变形为可执行文件所需的步骤:[SO]: LNK2005 Error in CLR Windows Form (@CristiFati's answer)。这对于 C 来说是一样的,对于 Fortran 来说是一样的,除了:

  • 步骤 #1. 不存在(至少,我不这么认为)
  • 步骤 #2. 将由 Fortran 编译器(显然)执行

在处理 [SO]: What is numpy.ctypeslib.as_ctypes exacty doing (@CristiFati's answer) 时遇到了同样的问题。环境:

  • 用于 ifort.exe
  • 的英特尔 oneAPI HPC 工具包(也是 Base - 这是一个直接依赖项)
  • Microsoft 的 Visual Studio(我安装了很多版本,选择了 v2019 因为它是当时的最新版本)用于 link.exe< /li>

正如所见(必须查看两个输出片段)我分两步手动构建。
但是ifort.exe可以自动调用link.exe,如果后者的dirPATH中> 变量。有关调用 VStudio 命令的更多详细信息,请查看 [MS.Docs]: Building on the Command Line