CMake не находит компилятор Visual C ++

После установки Visual Studio 2015 и запуска CMake в предыдущем проекте CMake выдает сообщение об ошибке, утверждающее, что он не может найти компилятор C.

The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:4 (PROJECT):
  No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:4 (PROJECT):
  No CMAKE_CXX_COMPILER could be found.

Я начал искать cl.exe в папке Visual Studio, C:\Program Files\Microsoft Visual Studio 14.0 и не смог его найти.

Как настроить CMake для работы в Windows с Visual Studio 2015?

101 голос | спросил Asher 24 J000000Friday15 2015, 23:31:33

20 ответов


0

Я нашел решение. Хотя Visual Studio IDE успешно установлен, он не установил никаких инструментов сборки и, следовательно, не установил компилятор C ++.

Попытка вручную создать проект C ++ в графическом интерфейсе Visual Studio 2015 Мне удалось предложить ему загрузить пакеты C ++. Затем CMake смог найти компилятор без каких-либо затруднений.

ответил Asher 25 J000000Saturday15 2015, 00:11:17
0

Вот решение, которое сработало для меня:

  1. Откройте инструмент командной строки Visual Studio (от имени администратора)
  2. Перейдите туда, где находится исполняемый файл CMake
  3. Запустите Cmake.exe
  4. Продолжайте как обычно, чтобы выбрать папку для сборки и исходные файлы
  5. Выберите соответствующий компилятор Visual Studio и нажмите кнопку настройки

Надеюсь, он должен работать без проблем.

ответил Ochi Fortune 12 Jam1000000amTue, 12 Jan 2016 08:35:57 +030016 2016, 08:35:57
0

Я заглянул в файл CMakeError.log и обнаружил ошибку о cannot run 'rc.exe'

Я искал и нашел этот ответ , чтобы скопировать RC.Exe и RcDll.Dll из корзины Microsoft SDK в VC бен, а затем CMake работал.


Изменить: Главный ответ на другой вопрос предполагает, что это проблема PATH, поэтому ее может быть достаточно чтобы убедиться, что корзина Microsoft SDK находится в вашей переменной PATH.

ответил Carl Walsh 12 Mayam17 2017, 03:01:02
0

Убедитесь, что вы используете правильную версию Visual Studio в генераторе. Я неправильно выбрал Visual Studio 15 при установке Visual Studio 14.

ответил Hrushikesh Kulkarni 30 32016vEurope/Moscow11bEurope/MoscowWed, 30 Nov 2016 03:20:39 +0300 2016, 03:20:39
0

Для меня я проверил файл CMakeError.log и нашел:

  

[...] ошибка MSB8036: Windows SDK версии 8.1 не найден. Установите требуемую версию Windows SDK или измените версию SDK на страницах свойств проекта или щелкнув правой кнопкой мыши решение и выбрав «Retarget solution».

Это несмотря на использование Visual Studio 2017 в Windows 7. Похоже, что CMake пытается построить свой проект обнаружения с помощью Windows 8.1 SDK.

Я использовал установщик Visual Studio, чтобы добавить этот компонент, и теперь CMake счастлив как моллюск.

ответил chowey 11 AMpTue, 11 Apr 2017 08:36:16 +030036Tuesday 2017, 08:36:16
0

Если ни одно из вышеперечисленных решений не сработало, остановитесь и выполните проверку работоспособности.

Я сгорел, используя неверную строку -G <config>, и это дало мне эту ошибочную ошибку.

Сначала запустите из командной строки VS не обычную командную строку. Вы можете найти это в Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015 Это устанавливает все правильные пути к инструментам VS и т. д.

Теперь посмотрим, какие генераторы доступны в cmake ...

cmake -help

...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...

Затем выберите подходящую строку с помощью добавленного [arch].

mkdir _build cd _build cmake .. -G "Visual Studio 15 Win64"

Запуск cmake в подкаталоге упрощает «очистку», поскольку вы можете просто удалить все в этом каталоге.

Я обновился до Visual Studio 15, но не обращал внимания и пытался сгенерировать в 2012 году.

ответил TrophyGeek 30 +03002016-10-30T22:54:36+03:00312016bEurope/MoscowSun, 30 Oct 2016 22:54:36 +0300 2016, 22:54:36
0

Меню → Visual Studio 2015 → Командная строка MSBuild для Visual Studio 2015. Затем CMake может найти cl.exe.

set PATH="c:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\";%PATH%

Измените верхний путь к тому месту, где установлен Windows SDK.

CMake может найти rc.exe.

перейдите к пути CMakeLists.txt и выполните:

md .build
cd .build
cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release
cmake --build .

Параметр после -G должен быть получен CMake. Используйте --help; вы можете иметь или не иметь генератор.

ответил Alen Wesker 16 42017vEurope/Moscow11bEurope/MoscowThu, 16 Nov 2017 09:56:42 +0300 2017, 09:56:42
0

В качестве альтернативы принятому ответу вы можете установить C ++ напрямую , как описано здесь .

ответил Jthorpe 9 FriEurope/Moscow2016-12-09T00:54:01+03:00Europe/Moscow12bEurope/MoscowFri, 09 Dec 2016 00:54:01 +0300 2016, 00:54:01
0

Если вы работаете в Visual Studio 2017, вам нужен как минимум CMake 3.8!

ответил Lars Bilke 1 32017vEurope/Moscow11bEurope/MoscowWed, 01 Nov 2017 16:57:42 +0300 2017, 16:57:42
0

Я столкнулся с той же проблемой и исправил ее, перезапустив установку Visual Studio и проверив следующую опцию:

Windows and Web Development /Universal Windows App Development Tools / ---- +: = 2 = + ----

Он содержит стандартные заголовки C ++, используемые в большинстве приложений, и поэтому часто бывает необходимо его установить.

ответил Philippe Ferdinand 6 J0000006Europe/Moscow 2016, 23:04:56
0

В моем случае был установлен набор переменных среды, который стал причиной этой ошибки. Проблема была решена после удаления cxx_flags из переменных среды.

ответил Starger 7 J0000006Europe/Moscow 2017, 00:23:05
0

У меня возникла эта проблема с CMake 3.12.1 после обновления Visual Studio 2017. Я просто перезапустил CMake, и он заработал.

ответил 0xF 30 PM00000020000002831 2018, 14:03:28
0

В моем случае в CMakeError.log я увидел, что CMake не может найти Windows SDK (MSB8003: Could not find WindowsSDKDir variable from the registry)

Версия может быть указана в командной строке при первом запуске CMake с помощью:

-DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=

После того, как я это установил, я пошел дальше, но позже обнаружил больше проблем (поэтому я предполагаю, что моя среда каким-то образом испортилась), но, возможно, это поможет кому-то решить эту проблему.

ответил Zitrax 8 22016vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2016 13:55:36 +0300 2016, 13:55:36
0

Несколько советов:

  • Попробуйте установить путь вручную, проверив 'advanced' и изменив CMAKE_LINKER и CMAKE_MAKE_PROGRAM
  • Удалить кеш - в CMake с графическим интерфейсом перейдите: Файл → Удалить кэш.

Моя проблема была в сочетании с ранее заявленным: я установил версию компилятора на 15 вместо 14, и после исправления мне пришлось удалить кеш.

Я также запустил командную строку Visual Studio от имени администратора и оттуда запустил cmake-gui.exe

Тогда все заработало как положено.

ответил Rarach 8 FebruaryEurope/MoscowbWed, 08 Feb 2017 16:37:48 +0300000000pmWed, 08 Feb 2017 16:37:48 +030017 2017, 16:37:48
0

В моем случае проблема заключалась в том, что родительский проект, включая googletest через

add_subdirectory(gtest_dir)

был определен как

PROJECT( projname CXX )

Почему-то CMake не распознает

PROJECT(sub_project_name CXX C)

поскольку компилятор C не установлен в родительском.

Я решил проблему с помощью

PROJECT( projname CXX C)

в моем основном CMakeLists.txt файле.

ответил mojovski 9 Mayam17 2017, 10:09:49
0

Это может быть другое решение для тех, кто имеет последнюю версию создателя Windows 10:

Сообщение переполнения стека Неустранимая ошибка LNK1104 : невозможно открыть файл 'gdi32.lib'

ответил alanwsx 8 32017vEurope/Moscow11bEurope/MoscowWed, 08 Nov 2017 02:10:25 +0300 2017, 02:10:25
0

Ни одно из предыдущих решений не помогло мне. Однако я заметил, что хотя я установил Visual Studio версии 15 (не путать с Visual Studio 2015), каталог, созданный на моем компьютере, был предназначен для Visual Studio 14.

Когда я указывал Visual Studio 14, когда нажимал кнопку конфигурации, это работало.

ответил Gamaliel 2 PMpMon, 02 Apr 2018 15:39:33 +030039Monday 2018, 15:39:33
0

У меня была эта проблема под Windows 10 при использовании Visual Studio 2015 Professional, в то время как Visual Studio 2015 Express работал! Под Windows 7 работали обе версии Visual Studio.

Новые проекты, созданные в Visual Studio 2015 Professional, успешно компилируются, но CMake не может найти отчет компилятора:

The C compiler identification is unknown
The CXX compiler identification is unknown

Я обновил CMake с 3.4.1 до 3.11.4, и теперь проблема исчезла.

ответил jpo38 21 J0000006Europe/Moscow 2018, 16:43:13
0

У меня была похожая проблема с проектом Visual Studio 2017, созданным через CMake. Некоторые пакеты отсутствовали при установке Visual Studio в разработке для настольных компьютеров с C ++. Смотрите снимок:

Пакеты Visual Studio 2017:

 Пакеты Visual Studio2017

Также обновите CMake до последней версии.

ответил vinodsaluja 16 PM00000010000005331 2018, 13:37:53
0

Потому что CMake не может найти ваш компилятор Visual Studio. Запустите любой проект, который загрузит требуемые компиляторы, и CMake должен найти его.

ответил Kushal 30 Jpm1000000pmMon, 30 Jan 2017 20:59:01 +030017 2017, 20:59:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132