Идентификатор компилятора 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
и проверьте там сообщение об ошибке, чтобы увидеть:
- какой путь компилятора / командную строку использовал CMake
какое сообщение об ошибке вызывало компилятор
например
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.
Откройте инструменты -> Получить инструменты и функции, выберите отдельные компоненты, выполните поиск в 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.