2

我正在尝试使用 CMake 在 VS2017 上编译我的 c++ 项目(我使用的是 Windows 10 x64)。这是我的tasks.json

{
"version": "2.0.0",
"tasks": [
    {
        "label": "CMake Debug",
        "type": "shell",
        "options": {
            "cwd": "${workspaceRoot}/build"
        },
        "command": "CMake",
        "args": [
            "-G",
            "NMake Makefiles",
            "-DCMAKE_BUILD_TYPE=Debug",
            ".."
        ],
        "problemMatcher": [
            "$gcc"
        ]
    },
    {
        "label": "Make",
        "type": "shell",
        "options": {
            "cwd": "${workspaceRoot}/build"
        },
        "command": "nmake",
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]

}

当我运行 CMake Debug 任务时,出现以下错误:

Executing task: CMake -G 'NMake Makefiles' -DCMAKE_BUILD_TYPE=Debug .. <

-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/cl.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/CMakeTestCCompiler.cmake:52 (message):
  The C compiler

    "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/cl.exe"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: C:/Users/Paul/Desktop/EIP/Cryptagora-prisma/monitoring_tool/build/CMakeFiles/CMakeTmp

    Run Build Command:"nmake" "/nologo" "cmTC_8304c\fast"
        "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\nmake.exe" -f CMakeFiles\cmTC_8304c.dir\build.make /nologo -L                  CMakeFiles\cmTC_8304c.dir\build
    Building C object CMakeFiles/cmTC_8304c.dir/testCCompiler.c.obj
        C:\PROGRA~2\MICROS~2\2017\COMMUN~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x86\cl.exe    -o CMakeFiles\cmTC_8304c.dir\testCCompiler.c.obj   -c C:\Users\Paul\Desktop\EIP\Cryptagora-prisma\monitoring_tool\build\CMakeFiles\CMakeTmp\testCCompiler.c
    NMAKE : fatal error U1045: Úchec de la gÚnÚration dynamiqueá: Invalid argument
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\nmake.exe"'á: code retour '0x2'
    Stop.




  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)


-- Configuring incomplete, errors occurred!
See also "C:/Users/Paul/Desktop/EIP/Cryptagora-prisma/monitoring_tool/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Paul/Desktop/EIP/Cryptagora-prisma/monitoring_tool/build/CMakeFiles/CMakeError.log".
The terminal process terminated with exit code: 1

这昨天工作得很好。

4

1 回答 1

0

几个月前我遇到了这个问题,不得不恢复到旧版本的 cmake。具体降级到 3.12.4。

于 2019-02-19T15:49:40.910 回答