【问题标题】:ifort: error #10037: could not find 'link'ifort:错误 #10037:找不到“链接”
【发布时间】:2015-10-11 14:09:04
【问题描述】:

我下载并安装了以下评估软件: 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  

正如史蒂夫莱昂内尔(英特尔)在上一个链接中建议的那样,但得到了错误:

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

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

【问题讨论】:

    标签: linker fortran intel-fortran


    【解决方案1】:

    您可以简单地使用ifort 从命令行编译您的 Fortran 文件,这样做:

    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,从菜单中选择open file location

    我上传了这些截图,看看:

    从第二个屏幕截图中可以看到传递给批处理文件的参数。

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

    【讨论】:

    • 请返回检查问题。我提到在我的系统中ifort hello.for 导致error #10037, could not find link。在我的计算机中,Intel 64 Visual Studio 2012 模式的目标是C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2012"。您的第二个屏幕截图未显示传递给批处理文件的所有参数。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。

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

      现在,从 windows 命令行运行:compilervars.bat intel64

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

      【讨论】:

        【解决方案4】:

        我将首先指出将代码转变为可执行文件所需的步骤:[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) 时遇到了同样的问题。环境:

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

        如所见(必须同时查看 Output sn-ps),我分两步手动构建它。
        但是ifort.exe可以自动调用link.exe,如果后者的dirPATH中多变的。有关调用 VStudio 命令的更多详细信息,请查看[MS.Docs]: Building on the Command Line

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-28
          • 2023-03-05
          • 2014-01-02
          • 1970-01-01
          相关资源
          最近更新 更多