2013-12-17 4 views
16

У нас возникли проблемы с компиляцией проекта с использованием 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Идентификатор компилятора CXX неизвестен

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". 
+0

Ну сообщение об ошибке довольно ясно. Он не знает вашу строку ID компилятора. Было ли это когда-либо работать или где вы просто портировали проект? Отредактируйте соответствующие файлы, чтобы добавить этот компилятор. – RedX

+2

Вы использовали правильный генератор? Я имею в виду, что «Visual Studio 11 является правильным генератором для Visual Studio 2012». Не используйте Visual Studio 12 в качестве генератора. – drescherjm

ответ

10

Я была такая же проблема и фиксируется это работает CMake как администратор

+10

Не помогло в моем случае. – BartoszKP

+0

У меня была такая же проблема при компиляции SFML 2.1 с использованием компилятора Visual C++ 2013. Запуск в качестве администратора исправил его. – sjaustirni

+0

Я столкнулся с той же проблемой после обновления Windows SDK с 7.0a до 7.1. Новая версия была помещена в C: \ Program Files \ (я предполагаю, что я взял 64-битную версию), а VS2012 C++ и CMake тоже не могли компилироваться. Запуск панели управления Windows | Программы и функции | VS2012 | Ремонт сделал трюк, и VS и CMake работают правильно. – Michbeckable

0

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

2

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

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

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

0

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

0

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

0

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

0

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

2

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

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, например. убедитесь, что у вас есть какой-либо компилятор ресурсов. Он должен быть в пути, аналогичном:

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 снова был в состоянии для компиляции (тестовых) программ.

Ссылка

0

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

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

Надеемся, что это сработает и для вас.

Смежные вопросы