破解英特尔 C++ 编译器 2018 以与 VS 2019 配合使用?

破解英特尔 C++ 编译器 2018 以与 VS 2019 配合使用?

由于英特尔 C++ 编译器 2019(至少到更新 5)中存在一个错误,导致weak_ptr无法在不破坏其父级的情况下使用shared_ptr(请参阅此关联) 在 64 位/调试中,我想知道是否可以将 Intel 2018(以前的版本)与 VS 2019 一起使用。

目前,我们在使用 Intel C++ 2018 与 VS2015 时没有遇到任何问题。我们想升级到 VS2019,但我们仍想使用 Intel 2018,它尚未与 VS2019 正式集成有人知道如何绕过这个问题吗?注册表项?批处理文件?任何帮助都将不胜感激!

谢谢!

答案1

微软在文章中表示 CMakeSettings.json

cmakesettings.json 文件包含指定 Visual Studio 应如何与 CMake 交互以针对指定平台构建项目的信息。该文件存储 cmake.exe 环境的环境变量或参数等信息。您可以直接编辑或使用 CMake 设置编辑器(Visual Studio 2019 及更高版本)。

上述声明是,一旦正确设置,Visual Studio 2019 可以运行任何环境,甚至可以编译和运行 Linux 程序。

英特尔开发人员专区文章中提供了说明 使用 Intel C++ 编译器和 Visual Studio 2017/2019 cmake:>

如何使用英特尔 C++ 编译器和 VS2017/VS219 CMake“打开文件夹”工作流程,我给出了 VS2019 和英特尔 C++ 编译器更新 4 的示例:

  1. 创建 vs2019.cmd,内容如下:

    call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.245\windows\bin\ipsxe-comp-vars.bat"
    

    intel64 vs2019 启动“VS2019”/B“C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe”

  2. 。点击 vs2019.cmd。

  3. 在 VS2019 中编辑您的 CMakeSettings.json 配置文件,添加以下内容(用于 Release 配置):

    {
      "name": "x64-IntelEnv-Release",
      "description": "Start visual studio from Intel C++ compiler environment cmd window",
      "generator": "Ninja",
      "configurationType": "Release",
      "buildRoot": "${workspaceRoot}\\..\\cmake-build\\${name}",
      "installRoot": "${workspaceRoot}\\..\\cmake-install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": "",
      "inheritEnvironments": [ "msvc_x64_x64" ],
      "variables": [
        {
          "name": "CMAKE_CXX_COMPILER",
          "value": "icl.exe",
          "type": "FILEPATH"
        },
        {
          "name": "CMAKE_C_COMPILER",
          "value": "icl.exe",
          "type": "FILEPATH"
        }
      ]
    }
    
  4. 在“配置”下拉框中选择“x64-IntelEnv-Release”。构建。

这是我能做到的极限,从来没有做过上述的事情

相关内容