Почему cl.exe (компилятор Visual Studio) не может скомпилировать проект с помощью CMake (error-report)? - PullRequest
0 голосов
/ 23 октября 2019

Поскольку я новичок в CMake, я пытался настроить базовое приложение CMake с использованием графического интерфейса CMake, следуя этому руководству . Все работало нормально до того момента, когда я нажал «Настроить». Я изменил Visual Studio 14 2015 на Visual Studio 16 2019 (поскольку у меня более новая версия Visual Studio) и «Hello World» на «Basic», и после нажатия «Configure» я получил сообщение об ошибке, сообщающее мне компилятор Visual Studio, cl.exe, не удалось успешно скомпилировать тестовую программу. Подробнее см. Ниже.

Я уже создал проект CMake, используя встроенное рабочее пространство Visual Studio, и он успешно скомпилировал мой проект;тем не менее, это нежелательно для меня, поскольку Visual Studio добавляет кучу файлов в мой проект, что делает его более сложным для новичка и портит мой проект. Это говорит мне о том, что моя установка Visual Studio не является дефектной и что с CMake что-то не так.

Для тех, кто хочет знать, мой CMakeLists.txt выглядит следующим образом:

cmake_minimum_required(VERSION "3.10")

project("Basic")

add_executable("${PROJECT_NAME}" "main.cpp")

install(TARGETS "${PROJECT_NAME}" DESTINATION bin)
install(FILES "main.cpp" DESTINATION src)

Я ожидаю, что CMake настроит мой проект правильно, как это происходит с парнем из учебного видео, но вместо этого я получаю ошибку при настройке, которая говорит об этом (имя пользователя заменено на «potato» по личным причинам):

Selecting Windows SDK version 10.0.18362.0 to target Windows 6.1.7601.
The C compiler identification is MSVC 19.23.28106.4
The CXX compiler identification is MSVC 19.23.28106.4
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (message):
  The C compiler

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

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: C:/Users/potato/Desktop/Basic/build/CMakeFiles/CMakeTmp

    Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_09d22.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.3.1+1def00d3d for .NET Framework

    Copyright (C) Microsoft Corporation. All rights reserved.



    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5589,7): error MSB4023: Cannot evaluate the item metadata "%(FullPath)". The item metadata "%(FullPath)" cannot be applied to the path "@(_DebugSymbolsIntermediatePath->'C:\Users\potato\Desktop\Basic\build\CMakeFiles\CMakeTmp\Debug\%(Filename)%(Extension)')". Illegal characters in path. [C:\Users\potato\Desktop\Basic\build\CMakeFiles\CMakeTmp\cmTC_09d22.vcxproj]






  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/potato/Desktop/Basic/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/potato/Desktop/Basic/build/CMakeFiles/CMakeError.log".

CMakeError.log утверждает следующее:

Determining if the C compiler works failed with the following output:
Change Dir: C:/Users/potato/Desktop/Basic/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_09d22.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.3.1+1def00d3d for .NET Framework

Copyright (C) Microsoft Corporation. All rights reserved.



C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5589,7): error MSB4023: Cannot evaluate the item metadata "%(FullPath)". The item metadata "%(FullPath)" cannot be applied to the path "@(_DebugSymbolsIntermediatePath->'C:\Users\potato\Desktop\Basic\build\CMakeFiles\CMakeTmp\Debug\%(Filename)%(Extension)')". Illegal characters in path. [C:\Users\potato\Desktop\Basic\build\CMakeFiles\CMakeTmp\cmTC_09d22.vcxproj]

Возможно, я должен также отметить, что реальное имя пользователя, замененное на "potato", содержит апостроф. Это может быть только минимально, но это может быть важно, поскольку я прочитал ошибку «Недопустимые символы в пути».

1 Ответ

0 голосов
/ 23 октября 2019

Оказывается, проблема в моем случае заключается в том, что имя пользователя для моего компьютера содержит апостроф. Определенно странная ошибка.

...