Идентификатор компилятора CXX неизвестен

У нас возникают проблемы при компиляции проекта с использованием CMake (v2.8.12) под Windows 7 64Bit с использованием Visual Studio 2012. CMake выдает нам следующие ошибки. Мы уже пытались запустить Cmake из командной строки Visual Studio, используя права администратора. Похоже, в CMake 2.8.11 была похожая ошибка: http://www.cmake.org/Bug/view.php?id=14440

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:2 (project)


The C compiler identification is unknown
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:2 (project)


The CXX compiler identification is unknown
Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR) 
CMake Warning at src/CMakeLists.txt:44 (message):
  SWIG was not found.  You will not be able to compile for C#.


Configuring incomplete, errors occurred!
See also "C:/Users/hci/laser_control/CMakeFiles/CMakeOutput.log".
See also "C:/Users/hci/laser_control/CMakeFiles/CMakeError.log".

15 ответов

Эти сообщения об ошибках

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

означает, что CMake действительно нашел или предполагал компилятор, но не смог скомпилировать простую тестовую программу.

Взгляни на CMakeFiles\CMakeError.log и проверьте там сообщение об ошибке, чтобы увидеть:

  1. какой путь компилятора / командную строку использовал CMake
  2. какое сообщение об ошибке вызывало компилятор

    например LINK : fatal error LNK1181: cannot open input file 'kernel32.lib'

Если вы добавите --debug-trycompile к cmake вызов CMake даже сохранит файлы, которые он пытался протестировать при компиляции (так что вы можете скопировать / вставить / перезапустить командную строку из журнала ошибок в вашем cmd ракушка).

В прошлый раз у меня была эта проблема...

В прошлый раз у меня возникла эта проблема, когда моя стандартная установка Visual Studio 2012 Professional не установила Windows SDK (в журнале ошибок отображался отсутствующий заголовок SDK).

Чтобы проверить установку SDK, например, убедитесь, что у вас установлен любой Resource Compiler. Это должно быть в пути, похожем на:

C:\Program Files (x86)\Microsoft SDKs\Windows\v[some version]\bin\RC.Exe

Так как мне не хватало этого - или, точнее, любого SDK - я установил Windows 8.1 SDK (поскольку Visual Studio 2012 поддерживает Windows 8.x) и вуаля, мой CMake смог снова скомпилировать (тестировать) программы.

Ссылка

У меня была та же проблема, и я исправил ее, запустив cmake как Admin

Я получал вывод терминала:

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

Я проверил вывод CMakeError.log:

       \build\CMakeFiles\CMakeError.log

Он показал ошибку:

       warning MSB8003: The WindowsSDKDir property is not defined. Some build tools may not be found.

Возвращаясь к Visual Studio, мне нужно было установить Windows 10 SDK:

После установки SDK и запуска cmake он показал:

       Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.18363.
The C compiler identification is MSVC 19.28.29334.0
The CXX compiler identification is MSVC 19.28.29334.0

И построен успешно!

По какой-то причине удаление папки сборки на моем компьютере решило проблему.

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

  • Откройте командную строку для разработчиков из инструментов Visual Studio.
  • Перейдите в каталог, где присутствует cmake.exe.
  • Запустить его.

Будем надеяться, что это работает и для вас.

У меня была похожая проблема также, если вы используете Microsoft Visual Studio 2012, это может быть из-за отсутствия обновления KB2781514.

После того как я установил следующее обновление, CMake начал правильно определять компиляторы Visual Studio 2012 c/ C++.

http://www.microsoft.com/en-us/download/details.aspx?id=36020

cmake:

Cmake предполагает, что вы правильно задали путь компилятора g ++. В случае, если по какой-либо причине он не нашел путь компилятора {/usr/bin/g++}, он выдает ошибку, например:

           **The CXX compiler identification is unknown**

Таким образом, данный шаг сокращает эту ошибку:

  • Найдите путь CXX к вашему компилятору {для g ++ путь в Linux:/usr/bin/g++}

  • Задайте путь компилятора и экспортируйте его конфигурацию: PATH= / usr / bin:$PATH; экспорт PATH

  • Экспорт компилятора, например: export CXX= / usr / bin / g ++ -7

Здесь мы предполагаем, что g++,cmake,build-essential установлены в вашей системе Linux...!!

У меня была такая же проблема, и я должен был использовать "File -> Delete Cache", так как я случайно настроил CMake для использования неправильной версии Visual Studio.

Убедитесь, что вы выбрали правильную версию Visual Studio. Например, Visual Studio 2012 является версией 11.

Убедитесь, что вы установили инструменты Clang.

Откройте инструменты -> Получить инструменты и функции, выберите отдельные компоненты, выполните поиск в cmake, затем удалите cmake, а затем повторно установите cmake, по завершении перезагрузите компьютер.

Я только сталкиваюсь с этой проблемой, после того, как я удалил некоторое программное обеспечение MS. Я исправил это, отремонтировав Visual Studio 2012. Сначала зайдите в [Панель управления], затем выберите Visual Studio и восстановите его, все пойдет прямо сейчас.

Я видел это на ubuntu - проблема заключалась в том, что cmake предполагал clang ++ как компилятор c.

      CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message):
  The C compiler
    "/usr/bin/clang++-9"

Чтобы исправить это, экспортируйте пути компилятора C, C ++:

       export CC=/usr/bin/clang
 export CXX=/usr/bin/clang++

Та же проблема здесь с cmake 2.8.12 и visual studio 10. Cmake может не найти компилятор. Я решил проблему, удалив последнюю версию и установив cmake 2.8.10.

Если вы используете CMake 3.4.0, попробуйте обновить его до более новой версии. Ошибка относительно этого была исправлена ​​относительно недавно (см. Отчет об ошибке).

Другие вопросы по тегам