【问题标题】:C++/Fortran project created with Visual Studio 2010/Intel 2013 will not build in release mode in Visual Studio 2015/Intel 2017使用 Visual Studio 2010/Intel 2013 创建的 C++/Fortran 项目不会在 Visual Studio 2015/Intel 2017 中以发布模式构建
【发布时间】:2017-11-29 09:49:00
【问题描述】:

我继承了一个为在 Visual Studio 2010 / Intel 2013 上运行而创建的 Visual Studio 项目,它是 C++ 和 Fortran 项目的组合。我的任务是进行必要的修改,以使项目能够使用 Visual Studio 2015 和 Intel Fortran 2017 构建和运行。我已经在调试模式下编译、构建和运行所有内容,但我无法让它在发布中构建模式。对于所有引用 C++ .lib 项目的 Fortran 项目,我收到以下消息:

MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance   
fatal error C1905: Front end and back end not compatible (must target same processor).
LINK : fatal error LNK1257: code generation failed

我已经检查并再次检查了配置,所有项目都在为 Win32 平台构建。

在网上搜索,我了解到这可能是由于不同项目的优化设置不同。我玩过优化设置,要么什么都不做,要么导致库冲突。我在网上搜索过,试图解决这些冲突,但似乎找不到一个我可以实施的足够直接的解决方案。

该项目仍可在 Visual Studio 2010 中以调试和发布模式构建和运行。我什至尝试使用从 Visual Studio 2010 创建的 .lib 构建新的 Fortran 版本并得到相同的错误。

新版本的 Visual Studio 和 Intel Fortran 是否存在本质上不同的不兼容之处?

【问题讨论】:

    标签: c++ visual-studio-2015 linker-errors intel-fortran


    【解决方案1】:

    错误 C1905 状态:

    “前端和后端不兼容(必须针对同一处理器)”

    这是什么意思,为什么会这样? “当编译器前端 (C1.dll) 生成一个 .obj 文件时会发生此错误,该编译器前端 (C1.dll) 以一个处理器为目标,例如 x86、ARM 或 x64,但正在由一个目标为的后端 (C2.dll) 读取不同的处理器。”

    “要解决此问题,请确保您使用匹配的前端和后端。这是在 Visual Studio 中创建的项目的默认设置。如果您编辑了项目文件并使用了不同的路径到编译器工具。如果您没有专门设置编译器工具的路径,那么如果您的 Visual Studio 安装已损坏,则可能会出现此错误。例如,您可能已将编译器 .dll 文件从一个位置复制到另一个位置。使用程序和Windows 控制面板中用于修复或重新安装 Visual Studio 的功能。”

    您说您正在尝试将您的项目从 2013 年移植到 2017 年,这可以解释为什么您无法在发布模式下构建和运行它,因为编译器工具很可能位于不同的位置.

    -MSDN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 2011-04-08
      • 1970-01-01
      • 2019-02-05
      • 2015-12-29
      • 2015-07-08
      • 1970-01-01
      相关资源
      最近更新 更多