1

I was trying to run a program using intel compilers but while compiling the program it showed error. It was was due to cmake.

cmake -G "Visual Studio 17 2022" -A x64 -T "Intel(R) oneAPI DPC++ Compiler" ..
-- CMAKE_BUILD_TYPE is unset, defaulting to Release
-- Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.25099.
CMake Error at CMakeLists.txt:81 (project):
Failed to run MSBuild command:
C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/amd64/MSBuild.exe
to get the value of VCTargetsPath:
MSBuild version 17.3.1+2badb37d1 for .NET Framework
Build started 9/2/2022 10:51:43 AM.
Project "C:\Users\mtc\source\repos\onednn\build\CMakeFiles\3.23.1\VCTargetsPath.vcxproj" on node 1 (default targets).
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(460,5): error MSB8020: The build tools for Intel(R) oneAPI DPC++ Compiler (Platform Toolset = 'Intel(R) oneAPI DPC++ Compiler') cannot be found. 
To build using the Intel(R) oneAPI DPC++ Compiler build tools, please install Intel(R) oneAPI DPC++ Compiler build tools. 
Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [C:\Users\mtc\source\repos\onednn\build\CMakeFiles\3.23.1\VCTargetsPath.vcxproj]
Done Building Project "C:\Users\mtc\source\repos\onednn\build\CMakeFiles\3.23.1\VCTargetsPath.vcxproj" (default targets) -- FAILED

"C:\Users\mtc\source\repos\onednn\build\CMakeFiles\3.23.1\VCTargetsPath.vcxproj" (default target) (1) ->
(PrepareForBuild target) ->
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(460,5): error MSB8020: The build tools for Intel(R) oneAPI DPC++ Compiler (Platform Toolset = 'Intel(R) oneAPI DPC++ Compiler') cannot be found. To build using the Intel(R) oneAPI DPC++ Compiler build tools,
please install Intel(R) oneAPI DPC++ Compiler build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [C:\Users\mtc\source\repos\onednn\build\CMakeFiles\3.23.1\VCTargetsPath.vcxproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.15
Exit code: 1

rioV8
  • 24,506
  • 3
  • 32
  • 49
Pksingh
  • 53
  • 4
  • 1
    Welcome to SO! Can you please explain your understanding of the error message and how it was or wasn't helpful to you? It says the intel platform toolset couldn't be found and suggests installing it. – starball Nov 05 '22 at 07:46

2 Answers2

1

Ninja is the only CMake generator for Windows that works with the oneAPI DPC++ Compiler.

Please adhere to the instructions in the following link if you wish to utilise the Intel oneAPI DPC++ compiler: https://oneapi-src.github.io/oneDNN/dev_guide_build.html#id1

To use the Intel NextGen Compiler, could you please use the below command:

cmake -G ""Visual Studio 17 2022"" -T ""Intel C++ Compiler 2022"" ...
AlekhyaV - Intel
  • 580
  • 3
  • 21
0

There are a couple things that might be causing your problem.

  1. Make sure that the compiler is loaded in your current command environment. For the intel compiler this is usually C:\Program Files (x86)\Intel\oneAPI\setvars.bat.
  2. Make sure that the installed version of CMake is newer than the toolset that you are trying to use. Specifically, CMake version > 3.22.2 if you are using intel 2022.
  3. Your CMakeLists.txt is not posted, but according to Intel's documentation, you need to add find_package(IntelDPCPP REQUIRED).

Also, once you are able to get your target to build, I recommend that you switch to using a CMakePresets.json file to configure your CMake build. I have one that looks like this:

In this preset file, the cache variable INTEL_COMPILER is used to turn on/off specific intel compiler flags in my CMakeLists.txt such as /fp:precise.

CMakePresets.json

{
    "version": 3,
    "cmakeMinimumRequired": {
    "major": 3,
    "minor": 22,
    "patch": 2
    },
    "configurePresets": [
    {
        "name": "base",
        "hidden": true,
        "binaryDir": "${sourceDir}/_build/${presetName}"
    },
    {
        "name": "Windows",
        "hidden": true,
        "inherits": [
        "base"
        ],
        "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
        },
        "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
            "hostOS": "Windows"
        }
        }
    },
    {
        "name": "Debug",
        "hidden": true,
        "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
        }
    },
    {
        "name": "Release",
        "hidden": true,
        "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
        }
    },
    {
        "name": "Intel - IDE",
        "hidden": true,
        "toolset": "Intel C++ Compiler 2022",
        "cacheVariables": {
        "INTEL_COMPILER": "ON"
        }
    },
    {
        "name": "Visual Studio 2022 - Intel",
        "displayName": "Visual Studio 2022 using Intel compiler",
        "inherits": [
        "Windows",
        "Intel - IDE"
        ],
        "generator": "Visual Studio 17 2022"
    }
    ],
    "buildPresets": [
    {
        "name": "Windows",
        "hidden": true,
        "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
        },
        "vendor": {
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
            "hostOS": "Windows"
        }
        }
    },
    {
        "name": "Visual Studio 2022 - Intel",
        "displayName": "Visual Studio 2022 using Intel compiler",
        "inherits": [
        "Windows"
        ],
        "configurePreset": "Visual Studio 2022 - Intel"
    }
    ]
}