Ошибка CMake в CMakeLists.txt: 30 (проект): компилятор CMAKE C не найден



Я пытаюсь сделать решение Visual Studio с CMake для компиляции последней версии aseprite и CMake продолжает давать мне:



No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.


Я уже скачал GCC, и я использую Visual Studio 2015.



Я следую этому уроку:



https://github.com/aseprite/aseprite/blob/master/INSTALL.md

2674   15  

15 ответов:

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

CMake Error at ... (project):
    No CMAKE_C_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also ".../CMakeFiles/CMakeOutput.log".
See also ".../CMakeFiles/CMakeError.log".

или

CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.
Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
...
-- Configuring incomplete, errors occurred!

просто означает, что CMake не смог найти ваш компилятор C/CXX для компиляции простой тестовой программы (одна из первых попыток CMake при обнаружении вашей среды сборки).

шаги по поиску проблемы зависят от среды сборки, которую вы хотите создать. Следующие учебники представляют собой набор ответов здесь на Stack Overflow и некоторые из моих собственных опытов с CMake on Microsoft Windows 7/8/10 и Ubuntu 14.04.

предпосылки

  • вы установили компилятор / IDE, и он смог однажды скомпилировать любую другую программу (непосредственно без CMake)
  • у вас есть последний версия CMake
  • у вас есть права доступа на диске, который вы хотите CMake для создания среды сборки
  • у вас есть чистый каталог сборки (потому что CMake кэширует вещи с последней попытки), например, как подкаталог вашего исходного дерева

    Windows cmd.exe

    > rmdir /s /q VS2015
    > mkdir VS2015
    > cd VS2015
    

    Баш оболочка

    $ rm -rf MSYS
    $ mkdir MSYS
    $ cd MSYS
    

    и убедитесь, что ваша командная оболочка указывает на ваш недавно созданный двоичный выходной каталог.

общие вещи, которые вы можете/должны попробовать

  1. может ли CMake найти и запустить с любым/вашим компилятором по умолчанию? Бегите не давая генератору

    > cmake ..
    -- Building for: Visual Studio 14 2015
    ...
    

    идеально, если он правильно определил генератор для использования-как здесь Visual Studio 14 2015

  2. что это было на самом деле не удалось?

    в предыдущем каталоге вывода сборки посмотрите на CMakeFiles\CMakeError.log для любого сообщения об ошибке, которое имеет смысл для вас или пытается открыть / скомпилировать тестовый проект, созданный в CMakeFiles\[Version]\CompilerIdC/CompilerIdCXX непосредственно из командной строки (как нашел в журнале ошибок).

CMake не может найти Visual Studio

  1. попробуйте выбрать правильный генератор версия:

    > cmake --help
    > cmake -G "Visual Studio 14 2015" ..
    
  2. если это не помогает, попробуйте сначала установить переменные среды Visual Studio (путь может отличаться):

    > "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    > cmake ..
    

    или использовать Developer Command Prompt for VS2015 short-cut в меню Пуск Windows в разделе All Programs/Visual Studio 2015/Visual Studio Tools (спасибо на @Antwane для подсказки).

фон: CMake поддерживает все версии и вкусы Visual Studio (Экспресс, сообщество, профессионал, премиум, тест, команда, предприятие, конечная и т. д.). Для определения местоположения компилятора он использует комбинацию поиска в реестре (например, в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir), системные переменные среды и - если ни один из других не придумал что-то-явно пытаются вызвать компилятор.

CMake не может найти GCC (MinGW/MSys)

  1. вы запускаете MSys bash Shell с msys.bat и только попробуй напрямую звоните gcc

    $ gcc
    gcc.exe: fatal error: no input files
    compilation terminated.
    

    вот он и нашел gcc и жалуется, что я не дал ему никаких параметров для работы.

    поэтому должно работать следующее:

    $ cmake -G "MSYS Makefiles" ..
    -- The CXX compiler identification is GNU 4.8.1
    ...
    $ make
    

    если GCC не был найден вызов export PATH=... чтобы добавить путь к компиляторам (см. Как установить переменную окружения PATH в скрипте CMake?) и попробуйте снова.

  2. если все еще не работает, попробуйте установить CXX путь компилятора непосредственно экспортируя его (путь может отличаться)

    $ export CC=/c/MinGW/bin/gcc.exe
    $ export CXX=/c/MinGW/bin/g++.exe
    $ cmake -G "MinGW Makefiles" ..
    -- The CXX compiler identification is GNU 4.8.1
    ...
    $ mingw32-make
    

    для получения более подробной информации см. Как указать новый путь GCC для CMake

    Примечание: при использовании генератора "MinGW Makefiles" вы должны использовать mingw32-make программа распространяется с MinGW

  3. все еще не работает? Это странно. Убедитесь, что компилятор существует и имеет права на выполнение (см. также главу предварительные условия выше.)

    в противном случае последнее средство CMake-это не пытаться искать компилятор сам и устанавливать внутренние переменные CMake непосредственно с помощью

    $ cmake -DCMAKE_C_COMPILER=/c/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=/c/MinGW/bin/g++.exe ..
    

    для получения более подробной информации см. Cmake не чтит -D CMAKE_CXX_COMPILER=g++ и CMake ошибка настройки компилятора

    кроме того эти переменные также могут быть установлены через cmake-gui.exe на Windows. Смотрите Cmake не может найти компилятор

фон: почти то же самое, что и с Visual Studio. CMake поддерживает все виды вкусов GCC. Он ищет переменные среды (CC, CXX и т. д.) или просто пытается вызвать компилятор. Кроме того, он будет обнаруживать любые префиксы (когда кросс-компиляция) и пытается добавить его во все binutils компилятора GNU toolchain (ar,ranlib,strip,ld,nm,objdump, и objcopy).

Я также испытал эту ошибку при работе с CMake, например:

No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.

поле "предупреждение" в статье библиотеки MSDN Visual C++ в Visual Studio 2015 дал мне помощь, в которой я нуждался.

Visual Studio 2015 не поставляется с установленным по умолчанию C++. Таким образом, при создании нового проекта C++ вам будет предложено загрузить необходимые компоненты C++.

Это произошло со мной после установки Visual Studio 15 2017.

компилятор C++ для Visual Studio 14 2015 не был проблемой. Казалось, что это проблема с Windows 10 SDK.

добавление Windows 10 SDK в Visual Studio 14 2015 решило проблему для меня.

смотрите прилагаемый скриншот.

Enter image description here

я столкнулся с этой проблемой при создании libgit2-0.23.4. Для меня проблема заключалась в том, что компилятор C++ и связанные с ним пакеты не были установлены с VS2015, поэтому "C:\Program файлы (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.летучая мышь" файл отсутствовал, и Cmake не смог найти компилятор.

Я попытался вручную создать проект C++ в графическом интерфейсе Visual Studio 2015 (C:\Program файлы (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe) и при создании проекта я получил приглашение загрузить пакеты C++ & related.

после загрузки необходимых пакетов, я мог видеть vcvarsall.летучая мышь & CMake, например, смог найти компилятор и успешно выполняется с следующая запись:

C:\Users\aksmahaj\Documents\MyLab\fritzing\libgit2\build64>cmake ..
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual        
Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual  
Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE)
-- Could NOT find ZLIB (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- zlib was not found; using bundled 3rd-party sources.
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of 
the default search path.
-- Looking for futimens
-- Looking for futimens - not found
-- Looking for qsort_r
-- Looking for qsort_r - not found
-- Looking for qsort_s
-- Looking for qsort_s - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Found PythonInterp: C:/csvn/Python25/python.exe (found version "2.7.1")
-- Configuring done
-- Generating done
-- Build files have been written to:    
C:/Users/aksmahaj/Documents/MyLab/fritzing/libgit2/build64

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

затем я изменил его на "Visual Studio 11 2012", и все сработало. (У меня есть версия Visual Studio Ultimate 2012 на моем ПК). В общем случае попробуйте ввести более старую версию версии Visual Studio в начальном диалоговом окне конфигурации CMake.

убедитесь, что выбрана правильная версия Visual Studio. Это сложнее, чем кажется, потому что Visual Studio 2015 На самом деле Visual Studio 14, и аналогично Visual Studio 2012 является Visual Studio 11. Я неправильно выбрал Visual Studio 15, которая на самом деле является Visual Studio 2017, когда я установил 2015.

для Ubuntu, пожалуйста, установите следующие вещи:

sudo apt-get update && sudo apt-get install build-essential

ни одно из решений здесь не решает мою проблему-только когда я устанавливаю Центр обновления Windows для universal C runtime.

теперь CMake работает и больше не висит ссылка из Visual Studio.

обновление для универсальной среды выполнения C в Windows

на всякий случай, это поможет любому, как я в будущем:

У меня была эта проблема в течение 24 часов, на 3 разных 64-разрядных машинах(Win7 , Windows 8.1 VM и ноутбук WIn 8.1) - при попытке построить WebKit с VS 2017.

простая проблема здесь заключается в том, что компилятор VC++ (т. е. cl.exe и зависимые DLL) не виден для CMake. Простой. Сделав папки VC++, содержащие эти двоичные файлы, видимыми для CMake и вашей рабочей командной строки(Если вы используете Cmake из командной строки), вуаля! (В дополнение к ключевым моментам , поднятым другими, выше)

в любом случае, после всех видов исправлений - как опубликовано на этих многочисленных форумах - я обнаружил, что это просто вопрос обеспечения того, чтобы содержимое переменной PATH не было загромождено несколькими путями BIN Visual Studio и т. д.; И вместо этого указывает на :

a) расположение вашего компилятора (т. е. cl.exe для вашей предпочтительной версии Visual Studio ), которая в моем случае (таргетинг 64-битная платформа и разработка на 64-битном хосте): Файлы C:\Program (х86)\Майкрософт Visual студии\2017\\сообщества инструменты ВК\\индекса MSVC\14.15.26726\бин\Hostx64\х64

b) и, кроме того, папка, содержащая зависимую DLL называется (который cl.exe зависит от): интерфейс API-МС-победа-ЭЛТ-время выполнения-П1-1-0.dll - который на моей машине:

C:\Program файлы (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Remote Debugger\x64

эти два каталоги, добавляемые в упрощенную и пользовательскую системную переменную пути (работающую в командной строке с правами администратора), устранили мои "нет CMAKE_C_COMPILER не может быть найден" и "нет CMAKE_CXX_COMPILER не может быть найден." ошибки.

надеюсь, что это поможет кому-то.

для меня эта проблема ушла в Windows, когда я переместил свой проект в более мелкий родительский каталог, т. е. в:

C:\Users\spenc\Desktop\MyProjectDirectory

вместо

C:\Users\spenc\Desktop\...\MyProjectDirectory.

Я думаю, что источник проблемы был в том, что MSBuild имеет ограничение длины пути к файлу 260 символов. Это приводит к тому, что базовый тест компилятора CMake выполняет построение проекта с именем CompilerIdCXX.vcxproj завершится ошибка:

C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'

потому что длина пути к файлу, например,

C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp

превышает ограничение MAX_PATH.

CMake затем делает вывод, что нет компилятора CXX.

я обновил Visual Studio 2015 update 2 до Visual Studio 2015 update 3, и это решило мою проблему.

у меня была такая же проблема с cmake-gui (No CMAKE_CXX_COMPILER could be found.), при запуске CMake из командной строки работал нормально. После добавления записей вручную

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild.0\Bin

к переменной среды PATH это сработало для меня.

это работает для меня Ubuntu 17.10 (Искусный Муравьед):

apt-get update
apt-get install build-essential

вы также можете убедиться, что вы являетесь пользователем sudo, и у вас есть доступ для чтения/записи в каталоге, в котором вы работаете. У меня была аналогичная проблема на OS X, и я исправил ее, просто войдя в режим sudo.

для меня это сработало, чтобы использовать командную строку разработчика, которая поставляется с Visual Studio, а затем просто cd до your/jcef/dir и работать cmake -G "Visual Studio 14 Win64" ..

Comments

    Ничего не найдено.