由于英特尔 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 的示例:
创建 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”
。点击 vs2019.cmd。
在 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" } ] }
在“配置”下拉框中选择“x64-IntelEnv-Release”。构建。
(这是我能做到的极限,从来没有做过上述的事情。