Cmake c compiler could be found windows

CMake ошибка в CMakeLists.txt: 30 (проект): CMAKE_C_COMPILER не найден

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

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

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

Решение

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

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

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

Предпосылками

  • Вы установили компилятор / IDE, и он смог однажды скомпилировать любую другую программу (напрямую без CMake)
    • Вы, например, может иметь IDE, но, возможно, не установил компилятор или саму платформу поддержки, как описано в Проблемы генерации решения для VS 2017 с CMake или же Как мне сказать CMake использовать Clang в Windows?
  • У вас последняя CMake версия
  • У вас есть права доступа к диску, который вы хотите, чтобы CMake генерировал вашу среду сборки

    У вас есть чистый каталог сборки (потому что CMake выполняет кеширование с последней попытки), например как подкаталог вашего исходного дерева

    Windows cmd.exe

    Баш оболочка

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

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

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

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

    Что же на самом деле не удалось?

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

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

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

    Если это не помогает, попробуйте сначала установить переменные среды Visual Studio (путь может отличаться):

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

    Фон: CMake поддерживает все выпуски и версии Visual Studio (Express, Community, Professional, Premium, Test, Team, Enterprise, Ultimate и т. Д.). Чтобы определить местоположение компилятора, он использует комбинацию поиска в реестре (например, в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir ), системные переменные окружения и — если никто из них ничего не придумал — попробуйте вызвать компилятор.

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

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

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

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

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

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

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

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

    До сих пор не работает? Это странно. Пожалуйста, убедитесь, что компилятор есть и имеет права на выполнение (см. Также главу «Предварительные условия» выше).

    В противном случае последнее средство CMake — не пытаться выполнять поиск самого компилятора и устанавливать внутренние переменные CMake напрямую

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

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

    Другие решения

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

    Поле «Предупреждение» в статье библиотеки 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 решило проблему для меня.

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

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

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

    После загрузки необходимых пакетов я увидел vcvarsall.bat & Cmake смог найти компилятор & успешно выполнен со следующим журналом:

    Для меня эта проблема исчезла в Windows, когда я переместил свой проект в более мелкий родительский каталог, то есть в:

    Я думаю, что источником проблемы было то, что 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 нет.

    У меня были такие же ошибки с 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, пожалуйста, установите следующие вещи:

    No CMAKE_C_COMPILER could be found

    Система: linux mint 18.1 serena. Вышла пару дней назад, думаю, это важно. Qt брал с оф-сайта онлайн-инстайллер qt-unified-linux-x64-2.0.4-online Получил: Qt Creator 4.2 Qt 5.7.1

    cmake 3.5.1 из оф-репов дистра

    Установил из оф-репов: gcc g++ gdb cmake libfontconfig1 mesa-common-dev build-essential libglu1-mesa-dev -y

    т.е. все, что необходимо — установлено.

    Создаю самый обычный проект c++ без использования qt с cmake и получаю такую ошибку:

    Захожу в папку с проектом и в терминале выполняю:

    Совершенно не понимаю, в чем причина. Переустанавливал qt, не помогает. На другом ноуте снес старое qt, и поставил свежее — там все отрабатывает нормально, но там система linux mint 18 sara.

    В cmake такие переменные:

    Тут два варианта: либо ты что-то намудрил при настройке проекта в QtCreator, либо этот твой QtCreator-с-официального-сайта — дно.

    У тебя сверху же ясно написано почему:

    в коммандной строке cmake ты затираешь компилятор.

    вообще по опыту могу сказать, что этот qtcreator как раз хорошо работает.

    Всегда работал нормально. Поставил на другом ноуте на предыдущей версии минта(18 Sara), там все норм. В настройках проекта все по дефолту. Со старыми проектами все тоже самое.

    Можно чуть подробнее, что именно нужно сделать, дабы это исправить? Если Вам не трудно конечно. Сталкиваюсь в первый раз, да и эти настройки для меня пока темный лес, никогда в них не лазил.

    Где? В CMakeFile? Где-то в QtCreator?

    Энивей, можно туда просто вписать /usr/bin/gcc

    Огромное спасибо! Все получилось! А это уже был 4й форум по счету, где я спрашивал о решении проблемы!

    Просто удалил строку CMAKE_C_COMPILER:STRING=%

    Что забавно, на втором ноуте в этой же версии qt сейчас так:

    И там жаловалось, что нет QT_INSTALL_PREFIX, я его туда потом добавил и жаловаться перестало.

    Возникло два вопроса: 1) Почему по дефолту прописались разные параметры в этом меню креатора на двух разных системах? 2) В чем разница между Compiler:Executable:Cxx и Compiler:Executable ?

    Пометь тему решённой.

    Почему по дефолту прописались разные параметры в этом меню креатора на двух разных системах?

    В чем разница между Compiler:Executable:Cxx и Compiler:Executable ?

    Первое — это «компилятор для С++ из текущего набора», второе — это «компилятор из текущего набора». https://github.com/qtproject/qt-creator/blob/43c6e97529e571b5702b2ca04f18ab67.

    Та же ситуация на Debian 8. QtCreator брал с сайта Qt. Вылечил установкой CMAKE_C_COMPILER в списке переменных cmake для проекта. Это, конечно, хак, потому что при использовании нескольких китов (компиляторов, например, clang, gcc) придется каждый раз вручную менять содержимое CMAKE_C_COMPILER.

    Жду следующего QtCreator, в нем обещают перейти на cmake server, наверняка и этого косяка переделки как-то коснутся.

    Энивей, можно туда просто вписать /usr/bin/gcc

    У меня не сработало. Даже если удалить строки с указанием компиляторов C и CXX, то они все равно будут устанавливаться (для C пустая строка, для CXX — то, что надо).

    А теперь закрой QtCreator, удали CMakeLists.txt.user и содержимое папки, где запускал cmake и заново запусти QtCreator с этим проектом. У меня ошибка оставалась до тех пор, пока я не прописал CMAKE_C_COMPILER в настройках проекта (открывается по Ctrl+5).

    Оттуда и CMAKE_CXX_COMPILER убрать надо.

    Эти две переменные позволяют выбрать нужный комилятор. Если их не указывтаь, cmake сам находит подходящий. Иногда имеет смысл указать, если нужно какой-то конкретный.

    QtCreator делает с cmake непонятные манипуляции. Самый адекватный вариант на мой взгляд, пока что, просто создать каталог для сорки, запустить руками из консоли там один раз cmake path_to_source youroptions . , а потом подсунуть qtcreator’у этот каталог в качестве ктаалога сборки, при открытии cmake проекта.

    Я так делал. В результате QtCreator при открытии проекта снова запускает cmake (причем он показывает с какими параметрами, так что там все понятно) и этот запуск завершается с ошибкой (код возврата cmake = 1). Как я уже писал, я обошел это установкой CMAKE_C_COMPILER в настройках проекта.

    Оттуда и CMAKE_CXX_COMPILER убрать надо.

    Эти две переменные позволяют выбрать нужный комилятор

    У QtCreator есть так называемые Kit’ы, это такие наборы компиляторов и других параметров, с которыми собирать проект (один kit для clang, например, другой для gcc). Так вот, когда ты выбираешь какой kit использовать, QtCreator должен как-то передать эту информацию cmake. Вот для этого он и использует CMAKE_CXX_COMPILER и CMAKE_C_COMPILER в командной строке при запуске cmake, причем их содержимое он берет из натроек kit’а. Я пытался у себя убрать передачу этих переменных при запуске cmake (там есть такой вот список, который можно настроить)

    Но если их оттуда убрать, эти переменные все равно используются при запуске cmake (когда открываешь QtCreator, он запускает cmake, пишет с какими параметрами и какая получилась ошибка).

    после того как загрузил проект, удали cmakecache, запусти в каталоге cmake с нормальными параметрами и забей накиты.

    после того как загрузил проект, удали cmakecache, запусти в каталоге cmake с нормальными параметрами и забей

    Суть в том, что проект не загружается, пока в кеше не появится правильное значение CMAKE_C_COMPILER (запуска cmake из QtCreator завершается с ошибкой и в результате список файлов проекта не показывается). И пока cmake, запущенный из QtCreator правильно не отработает, список файлов не появится (а это не произойдет без установки CMAKE_C_COMPILER в кеше, потому что сам QtCreator запускает cmake с неправильным значением -DCMAKE_C_COMPILER:STRING=»»). Ну, а какими манипуляциями в кеш попадет нужное значение CMAKE_C_COMPILER, значения не имеет. Мне мой вариант больше нравится.

    Кстати, можешь сам установить QtCreator (я брал из состава Qt https://download.qt.io/official_releases/online_installers/) и попробовать свой вариант.

    И пока cmake, запущенный из QtCreator правильно не отработает

    QtCreator запускает просто «cmake .» в каталоге сборки. Если ты предварительно запустил cmake с правильными ныжными тебе настройками, то в кэше уже будет всё что надо.

    Кстати, можешь сам установить QtCreator

    Я им на работе пользуюсь и у нас как раз тот случай, когда нельзя давать QtCreator’у всякую гадость делать. Потому таким «хаком» пользуюсь, а киты — в сад.

    QtCreator запускает просто «cmake .» в каталоге сборки.

    Если бы он так делал, то ошибка не появилась бы.

    No CMAKE_C_COMPILER could be found #706

    Comments

    OlafvdSpek commented Feb 23, 2017 •

    Just installed 2017 RC on a Windows 8 system. Bootstrap and integration went fine, but no libraries can be build. Building a test project in the IDE works fine.

    The text was updated successfully, but these errors were encountered:

    ras0219-msft commented Feb 23, 2017

    I’ll see if I can reproduce this on a VM — in the meantime, could you confirm that you can build a simple CMake project using the copy of CMake inside vcpkg?

    OlafvdSpek commented Mar 6, 2017

    ras0219-msft commented Mar 8, 2017 •

    Now that VS2017 RTW is out, could you update your VS 2017 installation and try again?

    OlafvdSpek commented Mar 9, 2017

    RTW on W7 (not W8): CMakeError.log:

    OpenSSL installed just fine though:
    Package openssl:x86-windows is installed

    derkestrel commented Mar 19, 2017 •

    I ran into the same problem. OpenSSL worked, but packages depending on zlib fail. I think the «cmake not found» is a red herring.

    Digging deeper into the logs it seems the linking of zlib fails.

    from C:\Users\User\Sources\vcpkg\buildtrees\zlib\x86-windows-rel\CMakeFiles\CMakeError.log
    Section Link:

    Is this the same for you?

    OlafvdSpek commented Mar 19, 2017

    No, zlib works fine for me. I’m stuck on

    VS only installs Windows SDK 10 by default.

    derkestrel commented Mar 19, 2017 •

    OlafvdSpek commented Mar 19, 2017

    No. It should use the Windows SDK 10.

    ras0219-msft commented Mar 22, 2017

    Ok, we’ve pushed a change that should fix this issue (selects the win10 sdk). Could you update and try again?

    OlafvdSpek commented Mar 22, 2017 •

    ./vcpkg install aws-sdk-cpp

    jbhelm commented Apr 8, 2017

    Just wanted to add I was also getting the erroneous «No CMAKE_C_COMPILER could be found» error when attempting to build zlib. In my case, the error in CMakeError.log was:

    It’s caused by the fact that the file «scripts\buildsystems\msbuild\applocal.ps1» was considered «blocked» by the OS, which results in PowerShell not being able to execute the script. Selecting Properties in Windows Explorer on the file and checking the «Unblock» (This file came from another computer and might be blocked to help protect this computer) option resolved the issue for me.

    ras0219-msft commented Apr 9, 2017

    I’ve just pushed eb9b85c which should help with this — we had a few remaining uses of Unrestricted in our sources which would trigger failure due to Mark Of The Web.

    nlappas commented Jun 21, 2017 •

    Any updates? I tried to open a folder that contained a CMakelists.txt and got the same error in Windows 7. Meanwhile If I try the cmake 3.8.1 from cmd, it finds properly the VS C compiler.

    (BTW it works in Windows 10)

    EDIT
    found the solution VSdeveloperCommunity
    I had to install some more components of VS2017

    QianyuyuGitHub commented Nov 14, 2017

    Just want this to be clear, I also got the same situation: the Cmake error no C compiler. After I modify the VS2017 by installing the win10 SDK, it works out with me! So if anyone got the same problem, please check your VS first! And appreciate all the people under this issue, I finally get through it by your helps!

    how0723 commented Nov 15, 2017

    maybe your system languages do not contain english . or your languages do not contain english

    PhoebeHui commented Nov 12, 2019

    I think it’s safe to close this thread, please report a new issue and attach failures if you encounter similar issue.

    You can’t perform that action at this time.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

    Читайте также:  Shell infrastructure host windows 10 прекращена работа
Оцените статью